mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-03 01:41:05 -05:00
substitute phone numbers back in when sending data to reports
This commit is contained in:
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user