Separate functions for cbc clients

Also move message_format to the clients.
This commit is contained in:
Pea Tyczynska
2020-12-09 11:13:50 +00:00
parent 553565bc91
commit 8af4b27fd6
5 changed files with 188 additions and 59 deletions

View File

@@ -6,7 +6,7 @@ from sqlalchemy.schema import Sequence
from app import cbc_proxy_client, db, notify_celery
from app.config import QueueNames
from app.models import BroadcastEventMessageType, BroadcastProvider, BroadcastProviderMessageType
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.utils import format_sequential_number
@@ -34,10 +34,8 @@ def send_broadcast_provider_message(broadcast_event_id, provider):
broadcast_provider_message, message_number = create_broadcast_provider_message(broadcast_event, provider)
formatted_message_number = None
message_format = BroadcastProviderMessageType.CBC
if provider == BroadcastProvider.VODAFONE:
formatted_message_number = format_sequential_number(message_number.broadcast_provider_message_number)
message_format = BroadcastProviderMessageType.IBAG
current_app.logger.info(
f'invoking cbc proxy to send '
@@ -56,7 +54,6 @@ def send_broadcast_provider_message(broadcast_event_id, provider):
cbc_proxy_provider_client.create_and_send_broadcast(
identifier=str(broadcast_provider_message.id),
message_number=formatted_message_number,
message_format=message_format,
headline="GOV.UK Notify Broadcast",
description=broadcast_event.transmitted_content['body'],
areas=areas,
@@ -67,7 +64,6 @@ def send_broadcast_provider_message(broadcast_event_id, provider):
cbc_proxy_provider_client.update_and_send_broadcast(
identifier=str(broadcast_provider_message.id),
message_number=formatted_message_number,
message_format=message_format,
headline="GOV.UK Notify Broadcast",
description=broadcast_event.transmitted_content['body'],
areas=areas,
@@ -79,7 +75,6 @@ def send_broadcast_provider_message(broadcast_event_id, provider):
cbc_proxy_provider_client.cancel_broadcast(
identifier=str(broadcast_provider_message.id),
message_number=formatted_message_number,
message_format=message_format,
headline="GOV.UK Notify Broadcast",
description=broadcast_event.transmitted_content['body'],
areas=areas,

View File

@@ -65,34 +65,12 @@ class CBCProxyClientBase:
sequential_number,
message_format
):
"""
link test - open up a connection to a specific provider, and send them an xml payload with a <msgType> of
test.
"""
payload = {
'message_type': 'test',
'identifier': identifier,
'message_number': sequential_number,
'message_format': message_format
}
self._invoke_lambda(payload=payload)
pass
def create_and_send_broadcast(
self, identifier, message_number, message_format, headline, description, areas, sent, expires,
):
payload = {
'message_type': 'alert',
'identifier': identifier,
'message_number': message_number,
'message_format': message_format,
'headline': headline,
'description': description,
'areas': areas,
'sent': sent,
'expires': expires,
}
self._invoke_lambda(payload=payload)
pass
# We have not implementated updating a broadcast
def update_and_send_broadcast(
@@ -151,6 +129,76 @@ class CBCProxyCanary(CBCProxyClientBase):
class CBCProxyEE(CBCProxyClientBase):
lambda_name = 'bt-ee-1-proxy'
def send_link_test(
self,
identifier,
sequential_number=None,
):
pass
"""
link test - open up a connection to a specific provider, and send them an xml payload with a <msgType> of
test.
"""
payload = {
'message_type': 'test',
'identifier': identifier,
'message_format': 'cbc'
}
self._invoke_lambda(payload=payload)
def create_and_send_broadcast(
self, identifier, headline, description, areas, sent, expires, message_number=None
):
pass
payload = {
'message_type': 'alert',
'identifier': identifier,
'message_format': 'cbc',
'headline': headline,
'description': description,
'areas': areas,
'sent': sent,
'expires': expires,
}
self._invoke_lambda(payload=payload)
class CBCProxyVodafone(CBCProxyClientBase):
lambda_name = 'vodafone-1-proxy'
def send_link_test(
self,
identifier,
sequential_number,
):
pass
"""
link test - open up a connection to a specific provider, and send them an xml payload with a <msgType> of
test.
"""
payload = {
'message_type': 'test',
'identifier': identifier,
'message_number': sequential_number,
'message_format': 'ibag'
}
self._invoke_lambda(payload=payload)
def create_and_send_broadcast(
self, identifier, message_number, headline, description, areas, sent, expires,
):
pass
payload = {
'message_type': 'alert',
'identifier': identifier,
'message_number': message_number,
'message_format': 'ibag',
'headline': headline,
'description': description,
'areas': areas,
'sent': sent,
'expires': expires,
}
self._invoke_lambda(payload=payload)

View File

@@ -2453,11 +2453,6 @@ class BroadcastProvider:
PROVIDERS = [EE, VODAFONE, THREE, O2]
class BroadcastProviderMessageType:
CBC = 'cbc'
IBAG = 'ibag'
class BroadcastProviderMessageStatus:
TECHNICAL_FAILURE = 'technical-failure' # Couldnt send (cbc proxy 5xx/4xx)
SENDING = 'sending' # Sent to cbc, awaiting response