mirror of https://github.com/zulip/zulip.git
Extract notify_peers().
Splitting out notify_peers() will give us flexibility for cleaning up how we notify peers for bulk adds. (imported from commit e108fa2c432cc1fe54d788c58c82c983e0f2394e)
This commit is contained in:
parent
d24d8e4b36
commit
e89c6f64bd
|
@ -711,6 +711,7 @@ def notify_subscriptions_added(user_profile, sub_pairs, no_log=False):
|
||||||
users=[user_profile.id])
|
users=[user_profile.id])
|
||||||
tornado_callbacks.send_notification(notice)
|
tornado_callbacks.send_notification(notice)
|
||||||
|
|
||||||
|
def notify_peers(user_profile, sub_pairs):
|
||||||
# For other users on each stream, if applicable, send a notification
|
# For other users on each stream, if applicable, send a notification
|
||||||
# with less info. To make this efficient in cases of bulk subscriptions,
|
# with less info. To make this efficient in cases of bulk subscriptions,
|
||||||
# we do a first pass computing which users get a notification regarding
|
# we do a first pass computing which users get a notification regarding
|
||||||
|
@ -780,7 +781,9 @@ def bulk_add_subscriptions(streams, users):
|
||||||
for user_profile in users:
|
for user_profile in users:
|
||||||
if len(sub_tuples_by_user[user_profile.id]) == 0:
|
if len(sub_tuples_by_user[user_profile.id]) == 0:
|
||||||
continue
|
continue
|
||||||
notify_subscriptions_added(user_profile, sub_tuples_by_user[user_profile.id])
|
sub_pairs = sub_tuples_by_user[user_profile.id]
|
||||||
|
notify_subscriptions_added(user_profile, sub_pairs)
|
||||||
|
notify_peers(user_profile, sub_pairs)
|
||||||
|
|
||||||
return ([(user_profile, stream_name) for (user_profile, recipient_id, stream_name) in new_subs] +
|
return ([(user_profile, stream_name) for (user_profile, recipient_id, stream_name) in new_subs] +
|
||||||
[(sub.user_profile, stream_name) for (sub, stream_name) in subs_to_activate],
|
[(sub.user_profile, stream_name) for (sub, stream_name) in subs_to_activate],
|
||||||
|
@ -800,6 +803,7 @@ def do_add_subscription(user_profile, stream, no_log=False):
|
||||||
subscription.save(update_fields=["active"])
|
subscription.save(update_fields=["active"])
|
||||||
if did_subscribe:
|
if did_subscribe:
|
||||||
notify_subscriptions_added(user_profile, [(subscription, stream)], no_log)
|
notify_subscriptions_added(user_profile, [(subscription, stream)], no_log)
|
||||||
|
notify_peers(user_profile, [(subscription, stream)])
|
||||||
return did_subscribe
|
return did_subscribe
|
||||||
|
|
||||||
def notify_subscriptions_removed(user_profile, streams, no_log=False):
|
def notify_subscriptions_removed(user_profile, streams, no_log=False):
|
||||||
|
|
Loading…
Reference in New Issue