|
135 | 135 | get_active_subscriptions_for_stream_id,
|
136 | 136 | get_bulk_stream_subscriber_info,
|
137 | 137 | get_stream_subscriptions_for_user,
|
138 |
| - get_stream_subscriptions_for_users, |
139 | 138 | get_subscribed_stream_ids_for_user,
|
140 | 139 | get_subscriptions_for_send_message,
|
141 | 140 | get_used_colors_for_user_ids,
|
@@ -3856,13 +3855,19 @@ def bulk_add_subscriptions(
|
3856 | 3855 | for user in users:
|
3857 | 3856 | assert user.realm_id == realm.id
|
3858 | 3857 |
|
| 3858 | + recipient_ids = [stream.recipient_id for stream in streams] |
3859 | 3859 | recipient_id_to_stream = {stream.recipient_id: stream for stream in streams}
|
3860 | 3860 |
|
3861 | 3861 | used_colors_for_user_ids: Dict[int, Set[str]] = get_used_colors_for_user_ids(user_ids)
|
3862 | 3862 |
|
| 3863 | + existing_subs = Subscription.objects.filter( |
| 3864 | + user_profile_id__in=user_ids, |
| 3865 | + recipient__type=Recipient.STREAM, |
| 3866 | + recipient_id__in=recipient_ids, |
| 3867 | + ) |
| 3868 | + |
3863 | 3869 | subs_by_user: Dict[int, List[Subscription]] = defaultdict(list)
|
3864 |
| - all_subs_query = get_stream_subscriptions_for_users(users) |
3865 |
| - for sub in all_subs_query: |
| 3870 | + for sub in existing_subs: |
3866 | 3871 | subs_by_user[sub.user_profile_id].append(sub)
|
3867 | 3872 |
|
3868 | 3873 | already_subscribed: List[SubInfo] = []
|
|
0 commit comments