mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 16:01:15 -05:00
(instead of using the id from broadcast_event) we need every XML blob we send to have a different ID. if we're sending different XML blobs for each provider, then each one should have a different identifier. So, instead of taking the identifier from the broadcast_event, take it from the broadcast_provider_message instead. Note: We're still going to the broadcast_event for most fields, to ensure they stay consistent between different providers. The last thing we want is for different phone networks to get different content
50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
from app import db
|
|
from app.dao.dao_utils import transactional
|
|
from app.models import BroadcastMessage, BroadcastEvent, BroadcastProviderMessage, BroadcastProviderMessageStatus
|
|
|
|
|
|
def dao_get_broadcast_message_by_id_and_service_id(broadcast_message_id, service_id):
|
|
return BroadcastMessage.query.filter(
|
|
BroadcastMessage.id == broadcast_message_id,
|
|
BroadcastMessage.service_id == service_id
|
|
).one()
|
|
|
|
|
|
def dao_get_broadcast_message_by_id(broadcast_message_id):
|
|
return BroadcastMessage.query.get(broadcast_message_id)
|
|
|
|
|
|
def dao_get_broadcast_event_by_id(broadcast_event_id):
|
|
return BroadcastEvent.query.get(broadcast_event_id)
|
|
|
|
|
|
def dao_get_broadcast_messages_for_service(service_id):
|
|
return BroadcastMessage.query.filter(
|
|
BroadcastMessage.service_id == service_id
|
|
).order_by(BroadcastMessage.created_at)
|
|
|
|
|
|
def get_earlier_events_for_broadcast_event(broadcast_event_id):
|
|
"""
|
|
This is used to build up the references list.
|
|
"""
|
|
this_event = BroadcastEvent.query.get(broadcast_event_id)
|
|
|
|
return BroadcastEvent.query.filter(
|
|
BroadcastEvent.broadcast_message_id == this_event.broadcast_message_id,
|
|
BroadcastEvent.sent_at < this_event.sent_at
|
|
).order_by(
|
|
BroadcastEvent.sent_at.asc()
|
|
).all()
|
|
|
|
|
|
@transactional
|
|
def create_broadcast_provider_message(broadcast_event, provider):
|
|
provider_message = BroadcastProviderMessage(
|
|
broadcast_event=broadcast_event,
|
|
provider=provider,
|
|
status=BroadcastProviderMessageStatus.SENDING,
|
|
)
|
|
db.session.add(provider_message)
|
|
return provider_message
|