mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-04 02:11:11 -05:00
Endpoint to return a ServiceContactList for a given id.
This commit is contained in:
@@ -2,6 +2,15 @@ from app import db
|
|||||||
from app.models import ServiceContactList
|
from app.models import ServiceContactList
|
||||||
|
|
||||||
|
|
||||||
|
def dao_get_contact_list_by_id(service_id, contact_list_id):
|
||||||
|
contact_list = ServiceContactList.query.filter_by(
|
||||||
|
service_id=service_id,
|
||||||
|
id=contact_list_id
|
||||||
|
).one()
|
||||||
|
|
||||||
|
return contact_list
|
||||||
|
|
||||||
|
|
||||||
def dao_get_contact_lists(service_id):
|
def dao_get_contact_lists(service_id):
|
||||||
contact_lists = ServiceContactList.query.filter_by(
|
contact_lists = ServiceContactList.query.filter_by(
|
||||||
service_id=service_id
|
service_id=service_id
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ from app.dao.returned_letters_dao import (
|
|||||||
fetch_returned_letter_summary,
|
fetch_returned_letter_summary,
|
||||||
fetch_returned_letters,
|
fetch_returned_letters,
|
||||||
)
|
)
|
||||||
from app.dao.service_contact_list_dao import dao_get_contact_lists, save_service_contact_list
|
from app.dao.service_contact_list_dao import dao_get_contact_lists, save_service_contact_list, \
|
||||||
|
dao_get_contact_list_by_id
|
||||||
from app.dao.service_data_retention_dao import (
|
from app.dao.service_data_retention_dao import (
|
||||||
fetch_service_data_retention,
|
fetch_service_data_retention,
|
||||||
fetch_service_data_retention_by_id,
|
fetch_service_data_retention_by_id,
|
||||||
@@ -1023,6 +1024,16 @@ def get_contact_list(service_id):
|
|||||||
return jsonify([x.serialize() for x in contact_lists])
|
return jsonify([x.serialize() for x in contact_lists])
|
||||||
|
|
||||||
|
|
||||||
|
@service_blueprint.route('/<uuid:service_id>/contact-list/<uuid:contact_list_id>', methods=['GET'])
|
||||||
|
def get_contact_list_by_id(service_id, contact_list_id):
|
||||||
|
contact_list = dao_get_contact_list_by_id(
|
||||||
|
service_id=service_id,
|
||||||
|
contact_list_id=contact_list_id
|
||||||
|
)
|
||||||
|
|
||||||
|
return jsonify(contact_list.serialize())
|
||||||
|
|
||||||
|
|
||||||
@service_blueprint.route('/<uuid:service_id>/contact-list', methods=['POST'])
|
@service_blueprint.route('/<uuid:service_id>/contact-list', methods=['POST'])
|
||||||
def create_contact_list(service_id):
|
def create_contact_list(service_id):
|
||||||
service_contact_list = validate(request.get_json(), create_service_contact_list_schema)
|
service_contact_list = validate(request.get_json(), create_service_contact_list_schema)
|
||||||
|
|||||||
@@ -79,3 +79,37 @@ def test_get_contact_list_returns_for_service(admin_request, notify_db_session):
|
|||||||
assert len(response) == 2
|
assert len(response) == 2
|
||||||
assert response[0] == expected_list_2.serialize()
|
assert response[0] == expected_list_2.serialize()
|
||||||
assert response[1] == expected_list_1.serialize()
|
assert response[1] == expected_list_1.serialize()
|
||||||
|
|
||||||
|
|
||||||
|
def test_dao_get_contact_list_by_id(admin_request, sample_service):
|
||||||
|
service_1 = create_service(service_name='Service under test')
|
||||||
|
|
||||||
|
expected_list_1 = create_service_contact_list(service=service_1)
|
||||||
|
create_service_contact_list(service=service_1)
|
||||||
|
|
||||||
|
response = admin_request.get(
|
||||||
|
'service.get_contact_list_by_id',
|
||||||
|
service_id=service_1.id,
|
||||||
|
contact_list_id=expected_list_1.id
|
||||||
|
)
|
||||||
|
|
||||||
|
assert response == expected_list_1.serialize()
|
||||||
|
|
||||||
|
|
||||||
|
def test_dao_get_contact_list_by_id_does_not_return_if_contact_list_id_for_another_service(
|
||||||
|
admin_request, sample_service
|
||||||
|
):
|
||||||
|
service_1 = create_service(service_name='Service requesting list')
|
||||||
|
service_2 = create_service(service_name='Service that owns the list')
|
||||||
|
|
||||||
|
create_service_contact_list(service=service_1)
|
||||||
|
list_2 = create_service_contact_list(service=service_2)
|
||||||
|
|
||||||
|
response = admin_request.get(
|
||||||
|
'service.get_contact_list_by_id',
|
||||||
|
service_id=service_1.id,
|
||||||
|
contact_list_id=list_2.id,
|
||||||
|
_expected_status=404
|
||||||
|
)
|
||||||
|
|
||||||
|
assert response['message'] == "No result found"
|
||||||
|
|||||||
Reference in New Issue
Block a user