diff --git a/app/job/rest.py b/app/job/rest.py index 5852d7f63..1aab2ca60 100644 --- a/app/job/rest.py +++ b/app/job/rest.py @@ -2,7 +2,7 @@ import dateutil import pytz from flask import Blueprint, current_app, jsonify, request -from app.aws.s3 import get_job_metadata_from_s3 +from app.aws.s3 import get_job_metadata_from_s3, get_phone_number_from_s3 from app.celery.tasks import process_job from app.config import QueueNames from app.dao.fact_notification_status_dao import fetch_notification_statuses_for_job @@ -76,6 +76,16 @@ def get_all_notifications_for_service_job(service_id, job_id): kwargs["service_id"] = service_id kwargs["job_id"] = job_id + for notification in paginated_notifications.items: + if notification.job_id is not None: + recipient = get_phone_number_from_s3( + notification.service_id, + notification.job_id, + notification.job_row_number, + ) + notification.to = recipient + notification.normalised_to = recipient + notifications = None if data.get("format_for_csv"): notifications = [ diff --git a/app/service/rest.py b/app/service/rest.py index 99d2b4c97..cef10ef1a 100644 --- a/app/service/rest.py +++ b/app/service/rest.py @@ -6,6 +6,7 @@ from sqlalchemy.exc import IntegrityError from sqlalchemy.orm.exc import NoResultFound from werkzeug.datastructures import MultiDict +from app.aws.s3 import get_phone_number_from_s3 from app.config import QueueNames from app.dao import fact_notification_status_dao, notifications_dao from app.dao.annual_billing_dao import set_default_free_allowance_for_service @@ -425,6 +426,16 @@ def get_all_notifications_for_service(service_id): include_one_off=include_one_off, ) + for notification in pagination.items: + if notification.job_id is not None: + recipient = get_phone_number_from_s3( + notification.service_id, + notification.job_id, + notification.job_row_number, + ) + notification.to = recipient + notification.normalised_to = recipient + kwargs = request.args.to_dict() kwargs["service_id"] = service_id diff --git a/tests/app/job/test_rest.py b/tests/app/job/test_rest.py index 56f2461b1..c48ef89d8 100644 --- a/tests/app/job/test_rest.py +++ b/tests/app/job/test_rest.py @@ -448,8 +448,11 @@ def _setup_jobs(template, number_of_jobs=5): def test_get_all_notifications_for_job_in_order_of_job_number( - admin_request, sample_template + admin_request, sample_template, mocker ): + mock_s3 = mocker.patch("app.job.rest.get_phone_number_from_s3") + mock_s3.return_value = "15555555555" + main_job = create_job(sample_template) another_job = create_job(sample_template) @@ -483,8 +486,11 @@ def test_get_all_notifications_for_job_in_order_of_job_number( ], ) def test_get_all_notifications_for_job_filtered_by_status( - admin_request, sample_job, expected_notification_count, status_args + admin_request, sample_job, expected_notification_count, status_args, mocker ): + mock_s3 = mocker.patch("app.job.rest.get_phone_number_from_s3") + mock_s3.return_value = "15555555555" + create_notification(job=sample_job, to_field="1", status="created") resp = admin_request.get( @@ -497,8 +503,11 @@ def test_get_all_notifications_for_job_filtered_by_status( def test_get_all_notifications_for_job_returns_correct_format( - admin_request, sample_notification_with_job + admin_request, sample_notification_with_job, mocker ): + mock_s3 = mocker.patch("app.job.rest.get_phone_number_from_s3") + mock_s3.return_value = "15555555555" + service_id = sample_notification_with_job.service_id job_id = sample_notification_with_job.job_id @@ -813,8 +822,11 @@ def create_10_jobs(template): def test_get_all_notifications_for_job_returns_csv_format( - admin_request, sample_notification_with_job + admin_request, sample_notification_with_job, mocker ): + mock_s3 = mocker.patch("app.job.rest.get_phone_number_from_s3") + mock_s3.return_value = "15555555555" + resp = admin_request.get( "job.get_all_notifications_for_service_job", service_id=sample_notification_with_job.service_id, diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index 219bb853b..7a5a92222 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -1846,7 +1846,11 @@ def test_get_all_notifications_for_service_including_ones_made_by_jobs( sample_notification, sample_notification_with_job, sample_template, + mocker, ): + mock_s3 = mocker.patch("app.service.rest.get_phone_number_from_s3") + mock_s3.return_value = "1" + # notification from_test_api_key create_notification(sample_template, key_type=KEY_TYPE_TEST)