This commit is contained in:
Kenneth Kehl
2024-08-19 12:53:18 -07:00
parent 9182ba0323
commit 7b1942c3fe
3 changed files with 30 additions and 12 deletions

View File

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

View File

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

View File

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