mirror of
https://github.com/GSA/notifications-api.git
synced 2026-01-30 06:21:50 -05:00
ensure the user_number in inbound sms is international
rather than using the `normalise_phone_number` function, use the `validate_and_format_phone_number` function - this will also convert all numbers to international format, which means we won't need to worry about whether the user enters internaional or UK phone numbers when searching
This commit is contained in:
@@ -3,7 +3,7 @@ from flask import (
|
||||
jsonify,
|
||||
request
|
||||
)
|
||||
from notifications_utils.recipients import normalise_phone_number
|
||||
from notifications_utils.recipients import validate_and_format_phone_number
|
||||
|
||||
from app.dao.inbound_sms_dao import dao_get_inbound_sms_for_service, dao_count_inbound_sms_for_service
|
||||
from app.errors import register_errors
|
||||
@@ -23,7 +23,8 @@ def get_inbound_sms_for_service(service_id):
|
||||
user_number = request.args.get('user_number')
|
||||
|
||||
if user_number:
|
||||
user_number = normalise_phone_number(user_number)
|
||||
# we use this to normalise to an international phone number
|
||||
user_number = validate_and_format_phone_number(user_number)
|
||||
|
||||
results = dao_get_inbound_sms_for_service(service_id, limit, user_number)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ from urllib.parse import unquote
|
||||
|
||||
import iso8601
|
||||
from flask import jsonify, Blueprint, current_app, request
|
||||
from notifications_utils.recipients import normalise_phone_number
|
||||
from notifications_utils.recipients import validate_and_format_phone_number
|
||||
|
||||
from app import statsd_client
|
||||
from app.dao.services_dao import dao_fetch_services_by_sms_sender
|
||||
@@ -64,8 +64,8 @@ def format_mmg_datetime(date):
|
||||
|
||||
|
||||
def create_inbound_mmg_sms_object(service, json):
|
||||
message = format_mmg_message(json['Message'])
|
||||
user_number = normalise_phone_number(json['MSISDN'])
|
||||
message = format_message(json['Message'])
|
||||
user_number = validate_and_format_phone_number(json['MSISDN'])
|
||||
|
||||
provider_date = json.get('DateRecieved')
|
||||
if provider_date:
|
||||
|
||||
@@ -190,7 +190,7 @@ def create_service_permission(service_id, permission=EMAIL_TYPE):
|
||||
def create_inbound_sms(
|
||||
service,
|
||||
notify_number=None,
|
||||
user_number='7700900111',
|
||||
user_number='447700900111',
|
||||
provider_date=None,
|
||||
provider_reference=None,
|
||||
content='Hello'
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from datetime import datetime
|
||||
|
||||
import pytest
|
||||
from freezegun import freeze_time
|
||||
|
||||
from tests.app.db import create_inbound_sms, create_service
|
||||
@@ -46,14 +47,19 @@ def test_get_inbound_sms_limits(admin_request, sample_service):
|
||||
assert sms['data'][0]['id'] == str(two.id)
|
||||
|
||||
|
||||
def test_get_inbound_sms_filters_user_number(admin_request, sample_service):
|
||||
# user_number in the db is normalised
|
||||
one = create_inbound_sms(sample_service, user_number='7700900001')
|
||||
two = create_inbound_sms(sample_service, user_number='7700900002')
|
||||
@pytest.mark.parametrize('user_number', [
|
||||
'(07700) 900-001',
|
||||
'+4407700900001',
|
||||
'447700900001',
|
||||
])
|
||||
def test_get_inbound_sms_filters_user_number(admin_request, sample_service, user_number):
|
||||
# user_number in the db is international and normalised
|
||||
one = create_inbound_sms(sample_service, user_number='447700900001')
|
||||
two = create_inbound_sms(sample_service, user_number='447700900002')
|
||||
|
||||
sms = admin_request.get(
|
||||
'inbound_sms.get_inbound_sms_for_service',
|
||||
endpoint_kwargs={'service_id': sample_service.id, 'user_number': '(07700) 900-001'}
|
||||
endpoint_kwargs={'service_id': sample_service.id, 'user_number': user_number}
|
||||
)
|
||||
|
||||
assert len(sms['data']) == 1
|
||||
|
||||
@@ -63,7 +63,7 @@ def test_create_inbound_mmg_sms_object(sample_service):
|
||||
|
||||
assert inbound_sms.service_id == sample_service.id
|
||||
assert inbound_sms.notify_number == 'foo'
|
||||
assert inbound_sms.user_number == '7700900001'
|
||||
assert inbound_sms.user_number == '447700900001'
|
||||
assert inbound_sms.provider_date == datetime(2017, 1, 2, 3, 4, 5)
|
||||
assert inbound_sms.provider_reference == 'bar'
|
||||
assert inbound_sms._content != 'hello there 📩'
|
||||
|
||||
Reference in New Issue
Block a user