mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-23 17:01:35 -05:00
Don't create broadcast event unless necessary
If we're not going to send a broadcast, we don't need to create the BroadcastEvent in the database. The BroadcastMessage contains all the data we need - the BroadcastEvent is not used. Not creating the event when we won't send the broadcast (e.g. when the broadcast message was created when the service was in trial mode) adds an extra layer of security.
This commit is contained in:
@@ -192,29 +192,29 @@ def _create_broadcast_event(broadcast_message):
|
||||
"""
|
||||
Creates a broadcast event, stores it in the database, and triggers the task to send the CAP XML off
|
||||
"""
|
||||
msg_types = {
|
||||
BroadcastStatusType.BROADCASTING: BroadcastEventMessageType.ALERT,
|
||||
BroadcastStatusType.CANCELLED: BroadcastEventMessageType.CANCEL,
|
||||
}
|
||||
|
||||
event = BroadcastEvent(
|
||||
service=broadcast_message.service,
|
||||
broadcast_message=broadcast_message,
|
||||
message_type=msg_types[broadcast_message.status],
|
||||
transmitted_content={"body": broadcast_message.content},
|
||||
transmitted_areas=broadcast_message.areas,
|
||||
# TODO: Probably move this somewhere more standalone too and imply that it shouldn't change. Should it include
|
||||
# a service based identifier too? eg "flood-warnings@notifications.service.gov.uk" or similar
|
||||
transmitted_sender='notifications.service.gov.uk',
|
||||
|
||||
# TODO: Should this be set to now? Or the original starts_at?
|
||||
transmitted_starts_at=broadcast_message.starts_at,
|
||||
transmitted_finishes_at=broadcast_message.finishes_at,
|
||||
)
|
||||
|
||||
dao_save_object(event)
|
||||
|
||||
if not broadcast_message.stubbed:
|
||||
msg_types = {
|
||||
BroadcastStatusType.BROADCASTING: BroadcastEventMessageType.ALERT,
|
||||
BroadcastStatusType.CANCELLED: BroadcastEventMessageType.CANCEL,
|
||||
}
|
||||
|
||||
event = BroadcastEvent(
|
||||
service=broadcast_message.service,
|
||||
broadcast_message=broadcast_message,
|
||||
message_type=msg_types[broadcast_message.status],
|
||||
transmitted_content={"body": broadcast_message.content},
|
||||
transmitted_areas=broadcast_message.areas,
|
||||
# TODO: Probably move this somewhere more standalone too and imply that it shouldn't change. Should it
|
||||
# include a service based identifier too? eg "flood-warnings@notifications.service.gov.uk" or similar
|
||||
transmitted_sender='notifications.service.gov.uk',
|
||||
|
||||
# TODO: Should this be set to now? Or the original starts_at?
|
||||
transmitted_starts_at=broadcast_message.starts_at,
|
||||
transmitted_finishes_at=broadcast_message.finishes_at,
|
||||
)
|
||||
|
||||
dao_save_object(event)
|
||||
|
||||
send_broadcast_event.apply_async(
|
||||
kwargs={'broadcast_event_id': str(event.id)},
|
||||
queue=QueueNames.BROADCASTS
|
||||
|
||||
Reference in New Issue
Block a user