mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-18 13:38:53 -04:00
Change function and variable names for readability and consistency
This commit is contained in:
@@ -24,7 +24,7 @@ sms_response_mapper = {
|
||||
|
||||
@notify_celery.task(bind=True, name="process-sms-client-response", max_retries=5, default_retry_delay=300)
|
||||
@statsd(namespace="tasks")
|
||||
def process_sms_client_response(self, status, provider_reference, client_name, code=None):
|
||||
def process_sms_client_response(self, status, provider_reference, client_name, detailed_status_code=None):
|
||||
# validate reference
|
||||
try:
|
||||
uuid.UUID(provider_reference, version=4)
|
||||
@@ -36,7 +36,7 @@ def process_sms_client_response(self, status, provider_reference, client_name, c
|
||||
|
||||
# validate status
|
||||
try:
|
||||
notification_status, detailed_status = response_parser(status, code)
|
||||
notification_status, detailed_status = response_parser(status, detailed_status_code)
|
||||
current_app.logger.info(
|
||||
f'{client_name} callback returned '
|
||||
f'status of {notification_status}: {detailed_status} for reference: {provider_reference}'
|
||||
@@ -53,17 +53,17 @@ def process_sms_client_response(self, status, provider_reference, client_name, c
|
||||
notification_status=notification_status,
|
||||
client_name=client_name,
|
||||
provider_reference=provider_reference,
|
||||
code=code
|
||||
detailed_status_code=detailed_status_code
|
||||
)
|
||||
|
||||
|
||||
def _process_for_status(notification_status, client_name, provider_reference, code=None):
|
||||
def _process_for_status(notification_status, client_name, provider_reference, detailed_status_code=None):
|
||||
# record stats
|
||||
notification = notifications_dao.update_notification_status_by_id(
|
||||
notification_id=provider_reference,
|
||||
status=notification_status,
|
||||
sent_by=client_name.lower(),
|
||||
code=code
|
||||
detailed_status_code=detailed_status_code
|
||||
)
|
||||
if not notification:
|
||||
return
|
||||
|
||||
@@ -33,13 +33,15 @@ firetext_codes = {
|
||||
}
|
||||
|
||||
|
||||
def get_firetext_responses(status, code=None):
|
||||
substatus = firetext_codes[code]['reason'] if firetext_codes.get(code, None) else None
|
||||
return firetext_responses[status], substatus
|
||||
def get_firetext_responses(status, detailed_status_code=None):
|
||||
detailed_status = firetext_codes[detailed_status_code]['reason'] if firetext_codes.get(
|
||||
detailed_status_code, None
|
||||
) else None
|
||||
return (firetext_responses[status], detailed_status)
|
||||
|
||||
|
||||
def get_message_status_and_reason_from_firetext_code(code):
|
||||
return firetext_codes[code]['status'], firetext_codes[code]['reason']
|
||||
def get_message_status_and_reason_from_firetext_code(detailed_status_code):
|
||||
return firetext_codes[detailed_status_code]['status'], firetext_codes[detailed_status_code]['reason']
|
||||
|
||||
|
||||
class FiretextClientResponseException(SmsClientResponseException):
|
||||
|
||||
@@ -45,8 +45,8 @@ mmg_response_map = {
|
||||
}
|
||||
|
||||
|
||||
def get_mmg_responses(status, substatus=None):
|
||||
return (mmg_response_map[status]["status"], mmg_response_map[status]["substatus"].get(substatus, None))
|
||||
def get_mmg_responses(status, detailed_status_code=None):
|
||||
return (mmg_response_map[status]["status"], mmg_response_map[status]["substatus"].get(detailed_status_code, None))
|
||||
|
||||
|
||||
class MMGClientResponseException(SmsClientResponseException):
|
||||
|
||||
@@ -89,19 +89,19 @@ def dao_create_notification(notification):
|
||||
db.session.add(notification)
|
||||
|
||||
|
||||
def _decide_permanent_temporary_failure(status, notification, code=None):
|
||||
def _decide_permanent_temporary_failure(status, notification, detailed_status_code=None):
|
||||
# If we get failure status from Firetext, we want to know if this is temporary or permanent failure.
|
||||
# So we check the failure code to learn that.
|
||||
# If there is no failure code, or we do not recognise the failure code, we do the following:
|
||||
# if notifitcation goes form status pending to status failure, we mark it as temporary failure;
|
||||
# if notification goes straight to status failure, we mark it as permanent failure.
|
||||
if status == NOTIFICATION_PERMANENT_FAILURE and code not in [None, '000']:
|
||||
if status == NOTIFICATION_PERMANENT_FAILURE and detailed_status_code not in [None, '000']:
|
||||
try:
|
||||
status, reason = get_message_status_and_reason_from_firetext_code(code)
|
||||
status, reason = get_message_status_and_reason_from_firetext_code(detailed_status_code)
|
||||
current_app.logger.info(f'Updating notification id {notification.id} to status {status}, reason: {reason}')
|
||||
return status
|
||||
except KeyError:
|
||||
current_app.logger.warning(f'Failure code {code} from Firetext not recognised')
|
||||
current_app.logger.warning(f'Failure code {detailed_status_code} from Firetext not recognised')
|
||||
# fallback option:
|
||||
if notification.status == NOTIFICATION_PENDING and status == NOTIFICATION_PERMANENT_FAILURE:
|
||||
status = NOTIFICATION_TEMPORARY_FAILURE
|
||||
@@ -113,8 +113,10 @@ def country_records_delivery(phone_prefix):
|
||||
return dlr and dlr.lower() == 'yes'
|
||||
|
||||
|
||||
def _update_notification_status(notification, status, code=None):
|
||||
status = _decide_permanent_temporary_failure(status=status, notification=notification, code=code)
|
||||
def _update_notification_status(notification, status, detailed_status_code=None):
|
||||
status = _decide_permanent_temporary_failure(
|
||||
status=status, notification=notification, detailed_status_code=detailed_status_code
|
||||
)
|
||||
notification.status = status
|
||||
dao_update_notification(notification)
|
||||
return notification
|
||||
@@ -122,7 +124,7 @@ def _update_notification_status(notification, status, code=None):
|
||||
|
||||
@statsd(namespace="dao")
|
||||
@transactional
|
||||
def update_notification_status_by_id(notification_id, status, sent_by=None, code=None):
|
||||
def update_notification_status_by_id(notification_id, status, sent_by=None, detailed_status_code=None):
|
||||
notification = Notification.query.with_for_update().filter(Notification.id == notification_id).first()
|
||||
|
||||
if not notification:
|
||||
@@ -149,7 +151,7 @@ def update_notification_status_by_id(notification_id, status, sent_by=None, code
|
||||
return _update_notification_status(
|
||||
notification=notification,
|
||||
status=status,
|
||||
code=code
|
||||
detailed_status_code=detailed_status_code
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -22,12 +22,12 @@ def process_mmg_response():
|
||||
raise InvalidRequest(errors, status_code=400)
|
||||
|
||||
status = str(data.get('status'))
|
||||
substatus = str(data.get('substatus'))
|
||||
detailed_status_code = str(data.get('substatus'))
|
||||
|
||||
provider_reference = data.get('CID')
|
||||
|
||||
process_sms_client_response.apply_async(
|
||||
[status, provider_reference, client_name, substatus],
|
||||
[status, provider_reference, client_name, detailed_status_code],
|
||||
queue=QueueNames.SMS_CALLBACKS,
|
||||
)
|
||||
|
||||
@@ -50,7 +50,7 @@ def process_firetext_response():
|
||||
raise InvalidRequest(errors, status_code=400)
|
||||
|
||||
status = request.form.get('status')
|
||||
code = request.form.get('code')
|
||||
detailed_status_code = request.form.get('code')
|
||||
provider_reference = request.form.get('reference')
|
||||
|
||||
safe_to_log = dict(request.form).copy()
|
||||
@@ -60,7 +60,7 @@ def process_firetext_response():
|
||||
)
|
||||
|
||||
process_sms_client_response.apply_async(
|
||||
[status, provider_reference, client_name, code],
|
||||
[status, provider_reference, client_name, detailed_status_code],
|
||||
queue=QueueNames.SMS_CALLBACKS,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user