mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	This simplifies some of our dependencies.
As an example, we really don't want compose.js
to depend on stream_subscribers_ui.js, since
the former doesn't use any actual UI code from
the latter.
We also rename the two functions here:
    invite_user_to_stream -> add_user_ids_to_stream
    remove_user_from_stream -> remove_user_id_from_stream
(The notion of "inviting" somebody to a stream is
somewhat misleading, since there is really no invitation
mechanism; you just add them.)
Apart from naming changes this is a verbatim code move.
Finally, we eliminate a little bit of test cruft--the
`override` helper already ensures that a function gets
called at least once during a test.
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import * as channel from "./channel";
 | 
						|
 | 
						|
/*
 | 
						|
    This module simply encapsulates our legacy API for subscribing
 | 
						|
    or unsubscribing users from streams. Callers don't need to
 | 
						|
    know the strange names of "subscriptions" and "principals",
 | 
						|
    nor how to JSON.stringify things, nor the URL scheme.
 | 
						|
*/
 | 
						|
 | 
						|
export function add_user_ids_to_stream(user_ids, sub, success, failure) {
 | 
						|
    // TODO: use stream_id when backend supports it
 | 
						|
    const stream_name = sub.name;
 | 
						|
    return channel.post({
 | 
						|
        url: "/json/users/me/subscriptions",
 | 
						|
        data: {
 | 
						|
            subscriptions: JSON.stringify([{name: stream_name}]),
 | 
						|
            principals: JSON.stringify(user_ids),
 | 
						|
        },
 | 
						|
        success,
 | 
						|
        error: failure,
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
export function remove_user_id_from_stream(user_id, sub, success, failure) {
 | 
						|
    // TODO: use stream_id when backend supports it
 | 
						|
    const stream_name = sub.name;
 | 
						|
    return channel.del({
 | 
						|
        url: "/json/users/me/subscriptions",
 | 
						|
        data: {subscriptions: JSON.stringify([stream_name]), principals: JSON.stringify([user_id])},
 | 
						|
        success,
 | 
						|
        error: failure,
 | 
						|
    });
 | 
						|
}
 |