mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
subscribers: Extract subscriber_api.
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.
This commit is contained in:
33
static/js/subscriber_api.js
Normal file
33
static/js/subscriber_api.js
Normal file
@@ -0,0 +1,33 @@
|
||||
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,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user