refactor: Use build_user_message for Slack/Gitter.

We now have all three third party
conversions (Gitter/Slack/Hipchat)
go through build_user_message().

Hipchat was already using this helper.

We also avoid callers having to pass in
an id to build_user_message().
This commit is contained in:
Steve Howell
2018-10-25 14:33:50 +00:00
committed by Tim Abbott
parent 5194701787
commit adb458a5df
2 changed files with 16 additions and 11 deletions

View File

@@ -662,7 +662,6 @@ def make_user_messages(zerver_message: List[ZerverFieldsT],
for user_id in user_ids: for user_id in user_ids:
is_mentioned = user_id in mention_user_ids is_mentioned = user_id in mention_user_ids
user_message = build_user_message( user_message = build_user_message(
id=NEXT_ID('user_message'),
user_id=user_id, user_id=user_id,
message_id=message_id, message_id=message_id,
is_private=is_pm_data, is_private=is_pm_data,

View File

@@ -264,19 +264,23 @@ def build_usermessages(zerver_usermessage: List[ZerverFieldsT],
mentioned_users_id: List[int], message_id: int) -> None: mentioned_users_id: List[int], message_id: int) -> None:
for subscription in zerver_subscription: for subscription in zerver_subscription:
if subscription['recipient'] == recipient_id: if subscription['recipient'] == recipient_id:
flags_mask = 1 # For read user_id = subscription['user_profile']
if subscription['user_profile'] in mentioned_users_id: is_mentioned = user_id in mentioned_users_id
flags_mask = 9 # For read and mentioned
# Slack and Gitter don't yet triage private messages.
# It's possible we don't even get PMs from them.
is_private = False
usermessage = build_user_message(
user_id=user_id,
message_id=message_id,
is_private=is_private,
is_mentioned=is_mentioned,
)
usermessage = dict(
user_profile=subscription['user_profile'],
id=NEXT_ID('user_message'),
flags_mask=flags_mask,
message=message_id)
zerver_usermessage.append(usermessage) zerver_usermessage.append(usermessage)
def build_user_message(id: int, def build_user_message(user_id: int,
user_id: int,
message_id: int, message_id: int,
is_private: bool, is_private: bool,
is_mentioned: bool) -> ZerverFieldsT: is_mentioned: bool) -> ZerverFieldsT:
@@ -286,6 +290,8 @@ def build_user_message(id: int,
if is_private: if is_private:
flags_mask += 2048 # For is_private flags_mask += 2048 # For is_private
id = NEXT_ID('user_message')
usermessage = dict( usermessage = dict(
id=id, id=id,
user_profile=user_id, user_profile=user_id,