mirror of
https://github.com/zulip/zulip.git
synced 2025-10-27 18:13:58 +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,
|
|
});
|
|
}
|