hipchat: Refactor code for building subscriptions.

This moves the filtering of invite-only into the caller, and also
adjusts the indentation.
This commit is contained in:
Tim Abbott
2019-01-09 16:17:54 -08:00
parent c34a8f2e69
commit 035138dd98
2 changed files with 20 additions and 25 deletions

View File

@@ -32,7 +32,7 @@ from zerver.data_import.import_util import (
build_stream, build_stream,
build_personal_subscriptions, build_personal_subscriptions,
build_public_stream_subscriptions, build_public_stream_subscriptions,
build_private_stream_subscriptions, build_stream_subscriptions,
build_user_message, build_user_message,
build_user_profile, build_user_profile,
build_zerver_realm, build_zerver_realm,
@@ -812,29 +812,28 @@ def do_convert_data(input_tar_file: str,
) )
realm['zerver_recipient'] = zerver_recipient realm['zerver_recipient'] = zerver_recipient
if slim_mode: if True:
public_stream_subscriptions = [] # type: List[ZerverFieldsT] if slim_mode:
else: public_stream_subscriptions = [] # type: List[ZerverFieldsT]
public_stream_subscriptions = build_public_stream_subscriptions( else:
zerver_userprofile=normal_users, public_stream_subscriptions = build_public_stream_subscriptions(
zerver_recipient=zerver_recipient, zerver_userprofile=normal_users,
zerver_stream=zerver_stream, zerver_recipient=zerver_recipient,
) zerver_stream=zerver_stream,
)
private_stream_subscriptions = build_private_stream_subscriptions( private_stream_subscriptions = build_stream_subscriptions(
get_users=subscriber_handler.get_users, get_users=subscriber_handler.get_users,
zerver_recipient=zerver_recipient, zerver_recipient=zerver_recipient,
zerver_stream=zerver_stream, zerver_stream=[stream_dict for stream_dict in zerver_stream
) if stream_dict['invite_only']],
)
stream_subscriptions = public_stream_subscriptions + private_stream_subscriptions
personal_subscriptions = build_personal_subscriptions( personal_subscriptions = build_personal_subscriptions(
zerver_recipient=zerver_recipient, zerver_recipient=zerver_recipient,
) )
zerver_subscription = personal_subscriptions + stream_subscriptions
zerver_subscription = \
public_stream_subscriptions + \
personal_subscriptions + \
private_stream_subscriptions
realm['zerver_subscription'] = zerver_subscription realm['zerver_subscription'] = zerver_subscription

View File

@@ -141,18 +141,14 @@ def build_public_stream_subscriptions(
return subscriptions return subscriptions
def build_private_stream_subscriptions( def build_stream_subscriptions(
get_users: Callable[..., Set[int]], get_users: Callable[..., Set[int]],
zerver_recipient: List[ZerverFieldsT], zerver_recipient: List[ZerverFieldsT],
zerver_stream: List[ZerverFieldsT]) -> List[ZerverFieldsT]: zerver_stream: List[ZerverFieldsT]) -> List[ZerverFieldsT]:
subscriptions = [] # type: List[ZerverFieldsT] subscriptions = [] # type: List[ZerverFieldsT]
stream_ids = { stream_ids = {stream['id'] for stream in zerver_stream}
stream['id']
for stream in zerver_stream
if stream['invite_only']
}
recipient_map = { recipient_map = {
recipient['id']: recipient['type_id'] # recipient_id -> stream_id recipient['id']: recipient['type_id'] # recipient_id -> stream_id