mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-02 09:26:08 -05:00
Add an endpoint to fetch service data retention by type
Admin app needs to get the service data retention for the specified notification type, so to avoid iterating through the list of all existing service data retention settings we restore the endpoint to get the individual data retention period.
This commit is contained in:
@@ -27,6 +27,7 @@ from app.dao.organisation_dao import dao_get_organisation_by_service_id
|
||||
from app.dao.service_data_retention_dao import (
|
||||
fetch_service_data_retention,
|
||||
fetch_service_data_retention_by_id,
|
||||
fetch_service_data_retention_by_notification_type,
|
||||
insert_service_data_retention,
|
||||
update_service_data_retention,
|
||||
)
|
||||
@@ -759,6 +760,12 @@ def get_data_retention_for_service(service_id):
|
||||
return jsonify([data_retention.serialize() for data_retention in data_retention_list]), 200
|
||||
|
||||
|
||||
@service_blueprint.route('/<uuid:service_id>/data-retention/notification-type/<notification_type>', methods=['GET'])
|
||||
def get_data_retention_for_service_notification_type(service_id, notification_type):
|
||||
data_retention = fetch_service_data_retention_by_notification_type(service_id, notification_type)
|
||||
return jsonify(data_retention.serialize() if data_retention else {}), 200
|
||||
|
||||
|
||||
@service_blueprint.route('/<uuid:service_id>/data-retention/<uuid:data_retention_id>', methods=['GET'])
|
||||
def get_data_retention_for_service_by_id(service_id, data_retention_id):
|
||||
data_retention = fetch_service_data_retention_by_id(service_id, data_retention_id)
|
||||
|
||||
@@ -35,6 +35,15 @@ def test_get_service_data_retention_returns_empty_list(client, sample_service):
|
||||
assert len(json.loads(response.get_data(as_text=True))) == 0
|
||||
|
||||
|
||||
def test_get_data_retention_for_service_notification_type(client, sample_service):
|
||||
data_retention = create_service_data_retention(service_id=sample_service.id)
|
||||
response = client.get('/service/{}/data-retention/notification-type/{}'.format(sample_service.id, 'sms'),
|
||||
headers=[('Content-Type', 'application/json'), create_authorization_header()],
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert json.loads(response.get_data(as_text=True)) == data_retention.serialize()
|
||||
|
||||
|
||||
def test_get_service_data_retention_by_id(client, sample_service):
|
||||
sms_data_retention = create_service_data_retention(service_id=sample_service.id)
|
||||
create_service_data_retention(service_id=sample_service.id, notification_type='email',
|
||||
|
||||
Reference in New Issue
Block a user