clean up and remove redundancy

This commit is contained in:
jimmoffet
2022-10-04 16:01:30 -07:00
parent b87217c3bf
commit 434b7b2d08
7 changed files with 6 additions and 76 deletions

View File

@@ -1,10 +1,6 @@
import enum
import traceback
from datetime import datetime, timedelta from datetime import datetime, timedelta
from json import decoder
import iso8601 import iso8601
import requests
from celery.exceptions import Retry from celery.exceptions import Retry
from flask import current_app, json from flask import current_app, json
from sqlalchemy.orm.exc import NoResultFound 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, get_service_delivery_status_callback_api_for_service,
) )
from app.models import NOTIFICATION_PENDING, NOTIFICATION_SENDING, Complaint 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) @notify_celery.task(bind=True, name="process-ses-result", max_retries=5, default_retry_delay=300)

View File

@@ -114,6 +114,7 @@ def create_delivery_status_callback_data(notification, service_callback_api):
"notification_client_reference": notification.client_reference, "notification_client_reference": notification.client_reference,
"notification_to": notification.to, "notification_to": notification.to,
"notification_status": notification.status, "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_created_at": notification.created_at.strftime(DATETIME_FORMAT),
"notification_updated_at": "notification_updated_at":
notification.updated_at.strftime(DATETIME_FORMAT) if notification.updated_at else None, notification.updated_at.strftime(DATETIME_FORMAT) if notification.updated_at else None,

View File

@@ -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)

View File

@@ -1,25 +1,10 @@
import enum
from datetime import timedelta 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.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.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.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 from app.notifications.sns_handlers import sns_notification_handler
ses_callback_blueprint = Blueprint('notifications_ses_callback', __name__) ses_callback_blueprint = Blueprint('notifications_ses_callback', __name__)

View File

@@ -566,7 +566,7 @@ def create_api_key(service, key_type=KEY_TYPE_NORMAL, key_name=None):
return api_key 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( inbound_number = InboundNumber(
id=uuid.uuid4(), id=uuid.uuid4(),
number=number, number=number,

View File

@@ -106,7 +106,7 @@ def test_provider_details_schema_returns_user_details(
restore_provider_details restore_provider_details
): ):
from app.schemas import provider_details_schema 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 current_sms_provider.created_by = sample_user
data = provider_details_schema.dump(current_sms_provider) data = provider_details_schema.dump(current_sms_provider)
@@ -119,7 +119,7 @@ def test_provider_details_history_schema_returns_user_details(
restore_provider_details, restore_provider_details,
): ):
from app.schemas import provider_details_schema 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 current_sms_provider.created_by_id = sample_user.id
data = provider_details_schema.dump(current_sms_provider) data = provider_details_schema.dump(current_sms_provider)

View File

@@ -1,6 +1,7 @@
from app.config import QueueNames from app.config import QueueNames
# NOTE 100422 pass_app_wrapper can probably be removed
def test_queue_names_set_in_paas_app_wrapper(): def test_queue_names_set_in_paas_app_wrapper():
with open("scripts/paas_app_wrapper.sh", 'r') as stream: with open("scripts/paas_app_wrapper.sh", 'r') as stream:
search = ' -Q ' search = ' -Q '