mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-11 17:38:02 -04:00
update broadcast provider message status on success/error
so we can distinguish errorring messages that are currently retrying from those that sent succesfully.
This commit is contained in:
@@ -9,8 +9,12 @@ from celery.exceptions import MaxRetriesExceededError
|
||||
from app import cbc_proxy_client, db, notify_celery
|
||||
from app.clients.cbc_proxy import CBCProxyFatalException, CBCProxyRetryableException
|
||||
from app.config import QueueNames
|
||||
from app.models import BroadcastEventMessageType, BroadcastProvider
|
||||
from app.dao.broadcast_message_dao import dao_get_broadcast_event_by_id, create_broadcast_provider_message
|
||||
from app.models import BroadcastEventMessageType, BroadcastProvider, BroadcastProviderMessageStatus
|
||||
from app.dao.broadcast_message_dao import (
|
||||
dao_get_broadcast_event_by_id,
|
||||
create_broadcast_provider_message,
|
||||
update_broadcast_provider_message_status
|
||||
)
|
||||
|
||||
from app.utils import format_sequential_number
|
||||
|
||||
@@ -138,12 +142,20 @@ def send_broadcast_provider_message(self, broadcast_event_id, provider):
|
||||
# (because the message has expired)
|
||||
check_provider_message_should_retry(broadcast_provider_message)
|
||||
|
||||
# TODO: Decide whether to set to TECHNICAL_FAILURE or ERROR based on response codes from cbc proxy
|
||||
update_broadcast_provider_message_status(
|
||||
broadcast_provider_message,
|
||||
status=BroadcastProviderMessageStatus.TECHNICAL_FAILURE
|
||||
)
|
||||
|
||||
self.retry(
|
||||
exc=exc,
|
||||
countdown=get_retry_delay(self.request.retries),
|
||||
queue=QueueNames.BROADCASTS,
|
||||
)
|
||||
|
||||
update_broadcast_provider_message_status(broadcast_provider_message, status=BroadcastProviderMessageStatus.ACK)
|
||||
|
||||
|
||||
@notify_celery.task(name='trigger-link-test')
|
||||
def trigger_link_test(provider):
|
||||
|
||||
@@ -61,3 +61,8 @@ def create_broadcast_provider_message(broadcast_event, provider):
|
||||
db.session.add(provider_message_number)
|
||||
db.session.commit()
|
||||
return provider_message
|
||||
|
||||
|
||||
@transactional
|
||||
def update_broadcast_provider_message_status(broadcast_provider_message, status):
|
||||
broadcast_provider_message.status = status
|
||||
|
||||
Reference in New Issue
Block a user