def send_messages(messages: List[Message]) -> None: # We disable USING_RABBITMQ here, so that deferred work is # executed in do_send_message_messages, rather than being # queued. This is important, because otherwise, if run-dev.py # wasn't running when populate_db was run, a developer can end # up with queued events that reference objects from a previous # life of the database, which naturally throws exceptions. settings.USING_RABBITMQ = False message_dict_list = [] for message in messages: message_dict = build_message_send_dict(message=message) message_dict_list.append(message_dict) do_send_messages(message_dict_list) bulk_create_reactions(messages) settings.USING_RABBITMQ = True
def construct_message( self, scheduled_message: ScheduledMessage) -> SendMessageRequest: message = Message() original_sender = scheduled_message.sender message.content = scheduled_message.content message.recipient = scheduled_message.recipient message.subject = scheduled_message.subject message.date_sent = timezone_now() message.sending_client = scheduled_message.sending_client delivery_type = scheduled_message.delivery_type if delivery_type == ScheduledMessage.SEND_LATER: message.sender = original_sender elif delivery_type == ScheduledMessage.REMIND: message.sender = get_user_by_delivery_email( settings.NOTIFICATION_BOT, original_sender.realm) return build_message_send_dict(message=message, stream=scheduled_message.stream, realm=scheduled_message.realm)