refactor: Break up build_subscriptions.

Having two smaller functions should make it
easier to customize the behavior for each specific
use case.  The only reason they were ever coupled
was to keep ids in sequence, but the recent NEXT_ID
changes make that a non-issue now.
This commit is contained in:
Steve Howell
2018-10-23 21:56:14 +00:00
committed by showell
parent 2ed9fbd25b
commit 25f532ca2f
2 changed files with 16 additions and 8 deletions

View File

@@ -29,7 +29,8 @@ from zerver.data_import.import_util import (
build_realm_emoji,
build_recipients,
build_stream,
build_subscriptions,
build_personal_subscriptions,
build_public_stream_subscriptions,
build_user_message,
build_user_profile,
build_zerver_realm,
@@ -672,11 +673,17 @@ def do_convert_data(input_tar_file: str, output_dir: str) -> None:
)
realm['zerver_recipient'] = zerver_recipient
zerver_subscription = build_subscriptions(
public_stream_subscriptions = build_public_stream_subscriptions(
zerver_userprofile=normal_users,
zerver_recipient=zerver_recipient,
zerver_stream=zerver_stream,
)
personal_subscriptions = build_personal_subscriptions(
zerver_recipient=zerver_recipient,
)
zerver_subscription = public_stream_subscriptions + personal_subscriptions
realm['zerver_subscription'] = zerver_subscription
zerver_realmemoji = write_emoticon_data(

View File

@@ -98,7 +98,7 @@ def build_subscription(recipient_id: int, user_id: int,
subscription_dict['recipient'] = recipient_id
return subscription_dict
def build_subscriptions(
def build_public_stream_subscriptions(
zerver_userprofile: List[ZerverFieldsT],
zerver_recipient: List[ZerverFieldsT],
zerver_stream: List[ZerverFieldsT]) -> List[ZerverFieldsT]:
@@ -108,11 +108,6 @@ def build_subscriptions(
the Hipchat export, so this function just autosubscribes all
users to every public stream. This returns a list of Subscription
dicts.
This function also creates personal subscriptions.
If you need more fine tuning on how to subscribe folks, look
at the code in slack.py.
'''
subscriptions = [] # type: List[ZerverFieldsT]
@@ -143,6 +138,12 @@ def build_subscriptions(
)
subscriptions.append(subscription)
return subscriptions
def build_personal_subscriptions(zerver_recipient: List[ZerverFieldsT]) -> List[ZerverFieldsT]:
subscriptions = [] # type: List[ZerverFieldsT]
personal_recipients = [
recipient
for recipient in zerver_recipient