diff --git a/app/celery/process_ses_receipts_tasks.py b/app/celery/process_ses_receipts_tasks.py index 22136e7a0..227a28e0b 100644 --- a/app/celery/process_ses_receipts_tasks.py +++ b/app/celery/process_ses_receipts_tasks.py @@ -1,10 +1,6 @@ -import enum -import traceback from datetime import datetime, timedelta -from json import decoder import iso8601 -import requests from celery.exceptions import Retry from flask import current_app, json from sqlalchemy.orm.exc import NoResultFound @@ -25,7 +21,6 @@ from app.dao.service_callback_api_dao import ( get_service_delivery_status_callback_api_for_service, ) from app.models import NOTIFICATION_PENDING, NOTIFICATION_SENDING, Complaint -from app.notifications.callbacks import create_complaint_callback_data @notify_celery.task(bind=True, name="process-ses-result", max_retries=5, default_retry_delay=300) diff --git a/app/celery/service_callback_tasks.py b/app/celery/service_callback_tasks.py index 9ba6ad0ad..8867fca6e 100644 --- a/app/celery/service_callback_tasks.py +++ b/app/celery/service_callback_tasks.py @@ -114,6 +114,7 @@ def create_delivery_status_callback_data(notification, service_callback_api): "notification_client_reference": notification.client_reference, "notification_to": notification.to, "notification_status": notification.status, + "notification_provider_response": notification.provider_response, # TODO do we have a test for provider_response "notification_created_at": notification.created_at.strftime(DATETIME_FORMAT), "notification_updated_at": notification.updated_at.strftime(DATETIME_FORMAT) if notification.updated_at else None, diff --git a/app/notifications/callbacks.py b/app/notifications/callbacks.py deleted file mode 100644 index 253e83af1..000000000 --- a/app/notifications/callbacks.py +++ /dev/null @@ -1,52 +0,0 @@ -from app.celery.service_callback_tasks import send_delivery_status_to_service -from app.config import QueueNames -from app.dao.service_callback_api_dao import ( - get_service_delivery_status_callback_api_for_service, -) - - -def check_and_queue_callback_task(notification): - # queue callback task only if the service_callback_api exists - service_callback_api = get_service_delivery_status_callback_api_for_service(service_id=notification.service_id) - if service_callback_api: - notification_data = create_delivery_status_callback_data(notification, service_callback_api) - - send_delivery_status_to_service.apply_async([str(notification.id), notification_data], queue=QueueNames.CALLBACKS) - - -def create_delivery_status_callback_data(notification, service_callback_api): - from app import encryption - from app.utils import DATETIME_FORMAT - - data = { - "notification_id": str(notification.id), - "notification_client_reference": notification.client_reference, - "notification_to": notification.to, - "notification_status": notification.status, - "notification_provider_response": notification.provider_response, - "notification_created_at": notification.created_at.strftime(DATETIME_FORMAT), - "notification_updated_at": notification.updated_at.strftime(DATETIME_FORMAT) if notification.updated_at else None, - "notification_sent_at": notification.sent_at.strftime(DATETIME_FORMAT) if notification.sent_at else None, - "notification_type": notification.notification_type, - "service_callback_api_url": service_callback_api.url, - "service_callback_api_bearer_token": service_callback_api.bearer_token, - } - - return encryption.encrypt(data) - - -def create_complaint_callback_data(complaint, notification, service_callback_api, recipient): - from app import encryption - from app.utils import DATETIME_FORMAT - - data = { - "complaint_id": str(complaint.id), - "notification_id": str(notification.id), - "reference": notification.client_reference, - "to": recipient, - "complaint_date": complaint.complaint_date.strftime(DATETIME_FORMAT), - "service_callback_api_url": service_callback_api.url, - "service_callback_api_bearer_token": service_callback_api.bearer_token, - } - - return encryption.encrypt(data) diff --git a/app/notifications/notifications_ses_callback.py b/app/notifications/notifications_ses_callback.py index 16e57384e..93f14b37a 100644 --- a/app/notifications/notifications_ses_callback.py +++ b/app/notifications/notifications_ses_callback.py @@ -1,25 +1,10 @@ -import enum from datetime import timedelta -from flask import Blueprint, current_app, json, jsonify, request +from flask import Blueprint, jsonify, request from app.celery.process_ses_receipts_tasks import process_ses_results -from app.celery.service_callback_tasks import ( - create_complaint_callback_data, - create_delivery_status_callback_data, - send_complaint_to_service, - send_delivery_status_to_service, -) from app.config import QueueNames -from app.dao.complaint_dao import save_complaint -from app.dao.notifications_dao import dao_get_notification_history_by_reference -from app.dao.service_callback_api_dao import ( - get_service_complaint_callback_api_for_service, - get_service_delivery_status_callback_api_for_service, -) from app.errors import InvalidRequest -from app.models import Complaint -from app.notifications.callbacks import create_complaint_callback_data from app.notifications.sns_handlers import sns_notification_handler ses_callback_blueprint = Blueprint('notifications_ses_callback', __name__) diff --git a/tests/app/db.py b/tests/app/db.py index 8dac3f22c..65b8a06b6 100644 --- a/tests/app/db.py +++ b/tests/app/db.py @@ -566,7 +566,7 @@ def create_api_key(service, key_type=KEY_TYPE_NORMAL, key_name=None): return api_key -def create_inbound_number(number, provider='mmg', active=True, service_id=None): +def create_inbound_number(number, provider='sns', active=True, service_id=None): inbound_number = InboundNumber( id=uuid.uuid4(), number=number, diff --git a/tests/app/test_schemas.py b/tests/app/test_schemas.py index 109678d43..eb7d875dd 100644 --- a/tests/app/test_schemas.py +++ b/tests/app/test_schemas.py @@ -106,7 +106,7 @@ def test_provider_details_schema_returns_user_details( restore_provider_details ): from app.schemas import provider_details_schema - current_sms_provider = get_provider_details_by_identifier('mmg') + current_sms_provider = get_provider_details_by_identifier('sns') current_sms_provider.created_by = sample_user data = provider_details_schema.dump(current_sms_provider) @@ -119,7 +119,7 @@ def test_provider_details_history_schema_returns_user_details( restore_provider_details, ): from app.schemas import provider_details_schema - current_sms_provider = get_provider_details_by_identifier('mmg') + current_sms_provider = get_provider_details_by_identifier('sns') current_sms_provider.created_by_id = sample_user.id data = provider_details_schema.dump(current_sms_provider) diff --git a/tests/test_all_queues_used.py b/tests/test_all_queues_used.py index 1a7166b96..c4c164e7d 100644 --- a/tests/test_all_queues_used.py +++ b/tests/test_all_queues_used.py @@ -1,6 +1,7 @@ from app.config import QueueNames +# NOTE 100422 pass_app_wrapper can probably be removed def test_queue_names_set_in_paas_app_wrapper(): with open("scripts/paas_app_wrapper.sh", 'r') as stream: search = ' -Q '