2020-07-09 18:22:29 +01:00
|
|
|
import requests
|
|
|
|
|
from flask import current_app
|
|
|
|
|
from notifications_utils.statsd_decorators import statsd
|
|
|
|
|
|
2020-10-20 11:57:26 +01:00
|
|
|
from app import cbc_proxy_client, notify_celery
|
2020-07-09 18:22:29 +01:00
|
|
|
|
2020-10-20 11:57:26 +01:00
|
|
|
from app.models import BroadcastEventMessageType
|
2020-09-14 15:21:55 +01:00
|
|
|
from app.dao.broadcast_message_dao import dao_get_broadcast_event_by_id
|
2020-07-09 18:22:29 +01:00
|
|
|
|
|
|
|
|
|
2020-08-04 19:21:22 +01:00
|
|
|
@notify_celery.task(name="send-broadcast-event")
|
|
|
|
|
@statsd(namespace="tasks")
|
|
|
|
|
def send_broadcast_event(broadcast_event_id, provider='stub-1'):
|
|
|
|
|
broadcast_event = dao_get_broadcast_event_by_id(broadcast_event_id)
|
|
|
|
|
|
2020-10-20 11:57:26 +01:00
|
|
|
if broadcast_event.message_type == BroadcastEventMessageType.ALERT:
|
|
|
|
|
current_app.logger.info(
|
|
|
|
|
f'invoking cbc proxy to send '
|
|
|
|
|
f'broadcast_event {broadcast_event.reference} '
|
|
|
|
|
f'msgType {broadcast_event.message_type} to {provider}'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cbc_proxy_client.create_and_send_broadcast(
|
|
|
|
|
identifier=str(broadcast_event.id),
|
|
|
|
|
headline="GOV.UK Notify Broadcast",
|
|
|
|
|
description=broadcast_event.transmitted_content['body'],
|
|
|
|
|
)
|
|
|
|
|
|
2020-08-04 19:21:22 +01:00
|
|
|
current_app.logger.info(
|
|
|
|
|
f'sending broadcast_event {broadcast_event.reference} '
|
|
|
|
|
f'msgType {broadcast_event.message_type} to {provider}'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
payload = broadcast_event.serialize()
|
|
|
|
|
|
|
|
|
|
resp = requests.post(
|
|
|
|
|
f'{current_app.config["CBC_PROXY_URL"]}/broadcasts/events/{provider}',
|
|
|
|
|
json=payload
|
|
|
|
|
)
|
|
|
|
|
resp.raise_for_status()
|
|
|
|
|
|
|
|
|
|
current_app.logger.info(
|
|
|
|
|
f'broadcast_event {broadcast_event.reference} '
|
|
|
|
|
f'msgType {broadcast_event.message_type} sent to {provider}'
|
|
|
|
|
)
|