From 7b1942c3fecd41192947a407b7b7c20f4070a4d1 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 19 Aug 2024 12:53:18 -0700 Subject: [PATCH] initial --- app/clients/sms/aws_sns.py | 3 ++- app/delivery/send_to_providers.py | 33 ++++++++++++++++++++++--------- app/user/rest.py | 6 ++++-- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/app/clients/sms/aws_sns.py b/app/clients/sms/aws_sns.py index e1c872665..067dcd2a0 100644 --- a/app/clients/sms/aws_sns.py +++ b/app/clients/sms/aws_sns.py @@ -2,6 +2,7 @@ import os import re from time import monotonic +from app.utils import hilite import botocore import phonenumbers from boto3 import client @@ -48,7 +49,7 @@ class AwsSnsClient(SmsClient): def send_sms(self, to, content, reference, sender=None, international=False): matched = False - + print(hilite(f"TO {to}")) for match in phonenumbers.PhoneNumberMatcher(to, "US"): matched = True to = phonenumbers.format_number( diff --git a/app/delivery/send_to_providers.py b/app/delivery/send_to_providers.py index 4f811de22..f699f1f12 100644 --- a/app/delivery/send_to_providers.py +++ b/app/delivery/send_to_providers.py @@ -80,21 +80,36 @@ def send_sms_to_provider(notification): # We start by trying to get the phone number from a job in s3. If we fail, we assume # the phone number is for the verification code on login, which is not a job. + print(f"IN THE TRY AND JOB_ID is {notification.job_id}") recipient = None - try: - recipient = get_phone_number_from_s3( - notification.service_id, - notification.job_id, - notification.job_row_number, - ) - except Exception: - # It is our 2facode, maybe + # It is our 2facode, maybe + if notification.job_id is None: + print(f"IN THE IF AND WE ARE GOING TO GET THE 2FA KEY") key = f"2facode-{notification.id}".replace(" ", "") + print(hilite(f"KEY IS SEND_TO_PROVIDERS IS {key}")) recipient = redis_store.get(key) - if recipient: recipient = recipient.decode("utf-8") + print(hilite(f"RECIPIENT IN SEND TO PROVIDERS IS {recipient}")) + else: + print(f"IN THE ELSE AND WE ARE GOING TO GET FROM S3") + try: + recipient = get_phone_number_from_s3( + notification.service_id, + notification.job_id, + notification.job_row_number, + ) + except Exception: + # It is our 2facode, maybe + key = f"2facode-{notification.id}".replace(" ", "") + print(hilite(f"KEY IS SEND_TO_PROVIDERS IS {key}")) + recipient = redis_store.get(key) + print(hilite(f"RECIPIENT IN SEND TO PROVIDERS IS {recipient}")) + + if recipient: + recipient = recipient.decode("utf-8") + if recipient is None: si = notification.service_id ji = notification.job_id diff --git a/app/user/rest.py b/app/user/rest.py index faaca4664..d184c03c4 100644 --- a/app/user/rest.py +++ b/app/user/rest.py @@ -53,7 +53,7 @@ from app.user.users_schema import ( post_verify_code_schema, post_verify_webauthn_schema, ) -from app.utils import url_with_token, utc_now +from app.utils import hilite, url_with_token, utc_now from notifications_utils.recipients import is_us_phone_number, use_numeric_sender user_blueprint = Blueprint("user", __name__) @@ -307,8 +307,9 @@ def send_user_2fa_code(user_id, code_type): def send_user_sms_code(user_to_send_to, data): + print(hilite("SEND_USER_SMS_CODE")) recipient = data.get("to") or user_to_send_to.mobile_number - + print(hilite(f"RECIPIENT {recipient}")) secret_code = create_secret_code() personalisation = {"verify_code": secret_code} @@ -372,6 +373,7 @@ def create_2fa_code( key = f"2facode-{saved_notification.id}".replace(" ", "") recipient = str(recipient) redis_store.set(key, recipient, ex=60 * 60) + print(hilite(f"SET REDIS 2facode-{saved_notification.id} to {recipient}")) # Assume that we never want to observe the Notify service's research mode # setting for this notification - we still need to be able to log into the