From 577463b0ac75168ff4311fbd1ca6af238fd97aa6 Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Mon, 20 Nov 2017 14:33:15 +0000 Subject: [PATCH] Remove create_or_update_email_reply_to and create_or_update_letter_contact - no longer needed. Remove Services.reply_to_email_address and Services.letter_contact_block --- app/dao/service_email_reply_to_dao.py | 16 ----- app/dao/service_letter_contact_dao.py | 19 ------ app/models.py | 2 - app/service/rest.py | 10 --- .../dao/test_service_email_reply_to_dao.py | 47 -------------- .../dao/test_service_letter_contact_dao.py | 56 ----------------- tests/app/service/test_rest.py | 63 ------------------- 7 files changed, 213 deletions(-) diff --git a/app/dao/service_email_reply_to_dao.py b/app/dao/service_email_reply_to_dao.py index a3364ce4d..fbb584e7c 100644 --- a/app/dao/service_email_reply_to_dao.py +++ b/app/dao/service_email_reply_to_dao.py @@ -25,22 +25,6 @@ def dao_get_reply_to_by_id(service_id, reply_to_id): return reply_to -def create_or_update_email_reply_to(service_id, email_address): - reply_to = dao_get_reply_to_by_service_id(service_id) - if len(reply_to) == 0: - reply_to = ServiceEmailReplyTo(service_id=service_id, email_address=email_address) - dao_create_reply_to_email_address(reply_to) - elif len(reply_to) == 1: - reply_to[0].email_address = email_address - dao_update_reply_to_email(reply_to[0]) - else: - # Once we move allowing multiple email address this methods will be removed - raise InvalidRequest( - "Multiple reply to email addresses were found, this method should not be used.", - status_code=500 - ) - - @transactional def dao_create_reply_to_email_address(reply_to_email): db.session.add(reply_to_email) diff --git a/app/dao/service_letter_contact_dao.py b/app/dao/service_letter_contact_dao.py index a9c64efc0..7adc81c54 100644 --- a/app/dao/service_letter_contact_dao.py +++ b/app/dao/service_letter_contact_dao.py @@ -29,25 +29,6 @@ def dao_get_letter_contact_by_id(service_id, letter_contact_id): return letter_contact -def create_or_update_letter_contact(service_id, contact_block): - letter_contacts = dao_get_letter_contacts_by_service_id(service_id) - if len(letter_contacts) == 0: - letter_contact = ServiceLetterContact( - service_id=service_id, - contact_block=contact_block - ) - dao_create_letter_contact(letter_contact) - elif len(letter_contacts) == 1: - letter_contacts[0].contact_block = contact_block - dao_update_letter_contact(letter_contacts[0]) - else: - # TODO: Once we move allowing letter contact blocks, this method will be removed - raise InvalidRequest( - "Multiple letter contacts were found, this method should not be used.", - status_code=500 - ) - - @transactional def dao_create_letter_contact(letter_contact): db.session.add(letter_contact) diff --git a/app/models.py b/app/models.py index 38fa59a7e..9eca3a187 100644 --- a/app/models.py +++ b/app/models.py @@ -224,8 +224,6 @@ class Service(db.Model, Versioned): email_from = db.Column(db.Text, index=False, unique=True, nullable=False) created_by = db.relationship('User') created_by_id = db.Column(UUID(as_uuid=True), db.ForeignKey('users.id'), index=True, nullable=False) - _reply_to_email_address = db.Column("reply_to_email_address", db.Text, index=False, unique=False, nullable=True) - _letter_contact_block = db.Column('letter_contact_block', db.Text, index=False, unique=False, nullable=True) prefix_sms = db.Column(db.Boolean, nullable=True, default=True) organisation_id = db.Column(UUID(as_uuid=True), db.ForeignKey('organisation.id'), index=True, nullable=True) free_sms_fragment_limit = db.Column(db.BigInteger, index=False, unique=False, nullable=True) diff --git a/app/service/rest.py b/app/service/rest.py index b4f25287f..2dda86991 100644 --- a/app/service/rest.py +++ b/app/service/rest.py @@ -57,14 +57,12 @@ from app.dao.service_whitelist_dao import ( ) from app.dao.service_email_reply_to_dao import ( add_reply_to_email_address_for_service, - create_or_update_email_reply_to, dao_get_reply_to_by_id, dao_get_reply_to_by_service_id, update_reply_to_email_address ) from app.dao.service_letter_contact_dao import ( dao_get_letter_contacts_by_service_id, - create_or_update_letter_contact, dao_get_letter_contact_by_id, add_letter_contact_for_service, update_letter_contact @@ -175,8 +173,6 @@ def create_service(): errors = {'user_id': ['Missing data for required field.']} raise InvalidRequest(errors, status_code=400) - # TODO: to be removed when front-end is updated - # validate json with marshmallow service_schema.load(request.get_json()) @@ -200,12 +196,6 @@ def update_service(service_id): update_dict = service_schema.load(current_data).data dao_update_service(update_dict) - if 'reply_to_email_address' in req_json: - create_or_update_email_reply_to(fetched_service.id, req_json['reply_to_email_address']) - - if 'letter_contact_block' in req_json: - create_or_update_letter_contact(fetched_service.id, req_json['letter_contact_block']) - # bridging code between frontend is deployed and data has not been migrated yet. Can only update current year if 'free_sms_fragment_limit' in req_json: update_free_sms_fragment_limit_data(fetched_service.id, req_json['free_sms_fragment_limit']) diff --git a/tests/app/dao/test_service_email_reply_to_dao.py b/tests/app/dao/test_service_email_reply_to_dao.py index 66e5c261c..9ee7040a7 100644 --- a/tests/app/dao/test_service_email_reply_to_dao.py +++ b/tests/app/dao/test_service_email_reply_to_dao.py @@ -4,7 +4,6 @@ import pytest from sqlalchemy.exc import SQLAlchemyError from app.dao.service_email_reply_to_dao import ( - create_or_update_email_reply_to, dao_get_reply_to_by_service_id, add_reply_to_email_address_for_service, update_reply_to_email_address, dao_get_reply_to_by_id) from app.errors import InvalidRequest @@ -12,52 +11,6 @@ from app.models import ServiceEmailReplyTo from tests.app.db import create_reply_to_email, create_service -def test_create_or_update_email_reply_to_does_not_create_another_entry(notify_db_session): - service = create_service() - create_reply_to_email(service, 'test@mail.com') - - create_or_update_email_reply_to(service.id, 'different@mail.com') - - reply_to = dao_get_reply_to_by_service_id(service.id) - - assert ServiceEmailReplyTo.query.count() == 1 - - -def test_create_or_update_email_reply_to_updates_existing_entry(notify_db_session): - service = create_service() - create_reply_to_email(service, 'test@mail.com') - - create_or_update_email_reply_to(service.id, 'different@mail.com') - - reply_to = dao_get_reply_to_by_service_id(service.id) - - assert len(reply_to) == 1 - assert reply_to[0].service.id == service.id - assert reply_to[0].email_address == 'different@mail.com' - - -def test_create_or_update_email_reply_to_creates_new_entry(notify_db_session): - service = create_service() - - create_or_update_email_reply_to(service.id, 'test@mail.com') - - reply_to = dao_get_reply_to_by_service_id(service.id) - - assert ServiceEmailReplyTo.query.count() == 1 - assert reply_to[0].service.id == service.id - assert reply_to[0].email_address == 'test@mail.com' - - -def test_create_or_update_email_reply_to_raises_exception_if_multilple_email_addresses_exist(notify_db_session): - service = create_service() - create_reply_to_email(service=service, email_address='something@email.com') - create_reply_to_email(service=service, email_address='another@email.com', is_default=False) - - with pytest.raises(expected_exception=InvalidRequest) as e: - create_or_update_email_reply_to(service_id=service.id, email_address='third@email.com') - assert e.value.message == "Multiple reply to email addresses were found, this method should not be used." - - def test_dao_get_reply_to_by_service_id(notify_db_session): service = create_service() default_reply_to = create_reply_to_email(service=service, email_address='something@email.com') diff --git a/tests/app/dao/test_service_letter_contact_dao.py b/tests/app/dao/test_service_letter_contact_dao.py index 1429a566e..01da7910d 100644 --- a/tests/app/dao/test_service_letter_contact_dao.py +++ b/tests/app/dao/test_service_letter_contact_dao.py @@ -4,7 +4,6 @@ from sqlalchemy.exc import SQLAlchemyError from app.dao.service_letter_contact_dao import ( add_letter_contact_for_service, - create_or_update_letter_contact, dao_get_letter_contacts_by_service_id, dao_get_letter_contact_by_id, update_letter_contact @@ -28,61 +27,6 @@ def test_dao_get_letter_contacts_by_service_id(notify_db_session): assert second_letter_contact == results[2] -def test_create_or_update_letter_contact_creates_new_entry(notify_db_session): - service = create_service() - - create_or_update_letter_contact(service.id, 'Cardiff, CA1 2DB') - - letter_contacts = dao_get_letter_contacts_by_service_id(service.id) - - assert ServiceLetterContact.query.count() == 1 - assert letter_contacts[0].service.id == service.id - assert letter_contacts[0].contact_block == 'Cardiff, CA1 2DB' - - -def test_create_or_update_letter_contact_does_not_create_another_entry(notify_db_session): - service = create_service() - create_letter_contact(service, 'London, NW1 2DB') - create_or_update_letter_contact(service.id, 'Bristol, BR1 2DB') - - letter_contacts = dao_get_letter_contacts_by_service_id(service.id) - - assert len(letter_contacts) == 1 - - -def test_create_or_update_letter_contact_updates_existing_entry(notify_db_session): - service = create_service() - create_letter_contact(service, 'London, NW1 2DB') - - create_or_update_letter_contact(service.id, 'Bristol, BR1 2DB') - - letter_contact = dao_get_letter_contacts_by_service_id(service.id) - - assert len(letter_contact) == 1 - assert letter_contact[0].service.id == service.id - assert letter_contact[0].contact_block == 'Bristol, BR1 2DB' - - -def test_create_or_update_letter_contact_raises_exception_if_multiple_contact_blocks_exist(notify_db_session): - service = create_service() - create_letter_contact(service=service, contact_block='Edinburgh, ED1 1AA') - create_letter_contact(service=service, contact_block='Manchester, MA1 2BB', is_default=False) - - with pytest.raises(expected_exception=InvalidRequest) as e: - create_or_update_letter_contact(service_id=service.id, contact_block='Swansea, SN1 3CC') - assert e.value.message == "Multiple letter contacts were found, this method should not be used." - - -def test_create_or_update_letter_contact_raises_exception_if_multiple_letter_contacts_exist(notify_db_session): - service = create_service() - create_letter_contact(service=service, contact_block='Edinburgh, ED1 1AA') - create_letter_contact(service=service, contact_block='Manchester, MA1 2BB', is_default=False) - - with pytest.raises(expected_exception=InvalidRequest) as e: - create_or_update_letter_contact(service_id=service.id, contact_block='Swansea, SN1 3CC') - assert e.value.message == "Multiple letter contacts were found, this method should not be used." - - def test_add_letter_contact_for_service_creates_additional_letter_contact_for_service(notify_db_session): service = create_service() diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index 3523d5f1b..79756c461 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -1341,34 +1341,6 @@ def test_get_service_and_api_key_history(notify_api, notify_db, notify_db_sessio assert json_resp['data']['api_key_history'][0]['id'] == str(api_key.id) -def test_set_reply_to_email_for_service(notify_api, sample_service): - with notify_api.test_request_context(): - with notify_api.test_client() as client: - auth_header = create_authorization_header() - resp = client.get( - '/service/{}'.format(sample_service.id), - headers=[auth_header] - ) - json_resp = json.loads(resp.get_data(as_text=True)) - assert resp.status_code == 200 - assert json_resp['data']['name'] == sample_service.name - - data = { - 'reply_to_email_address': 'reply_test@service.gov.uk', - } - - auth_header = create_authorization_header() - - resp = client.post( - '/service/{}'.format(sample_service.id), - data=json.dumps(data), - headers=[('Content-Type', 'application/json'), auth_header] - ) - result = json.loads(resp.get_data(as_text=True)) - assert resp.status_code == 200 - assert result['data']['reply_to_email_address'] == 'reply_test@service.gov.uk' - - def test_get_all_notifications_for_service_in_order(notify_api, notify_db, notify_db_session): with notify_api.test_request_context(), notify_api.test_client() as client: service_1 = create_service(service_name="1", email_from='1') @@ -2433,23 +2405,6 @@ def test_is_service_name_unique_returns_400_when_name_does_not_exist(client): assert json_resp["message"][1]["email_from"] == ["Can't be empty"] -def test_update_service_reply_to_email_address_upserts_email_reply_to(admin_request, sample_service): - response = admin_request.post( - 'service.update_service', - service_id=sample_service.id, - _data={ - 'reply_to_email_address': 'new@mail.com' - }, - _expected_status=200 - ) - - service_reply_to_emails = ServiceEmailReplyTo.query.all() - assert len(service_reply_to_emails) == 1 - assert service_reply_to_emails[0].email_address == 'new@mail.com' - assert service_reply_to_emails[0].is_default - assert response['data']['reply_to_email_address'] == 'new@mail.com' - - def test_get_email_reply_to_addresses_when_there_are_no_reply_to_email_addresses(client, sample_service): response = client.get('/service/{}/email-reply-to'.format(sample_service.id), headers=[create_authorization_header()]) @@ -2603,24 +2558,6 @@ def test_get_email_reply_to_address(client, notify_db, notify_db_session): assert json.loads(response.get_data(as_text=True)) == reply_to.serialize() -def test_update_service_letter_contact_upserts_letter_contact(admin_request, sample_service): - response = admin_request.post( - 'service.update_service', - service_id=sample_service.id, - _data={ - 'letter_contact_block': 'Aberdeen, AB23 1XH' - }, - _expected_status=200 - ) - - letter_contacts = ServiceLetterContact.query.all() - - assert len(letter_contacts) == 1 - assert letter_contacts[0].contact_block == 'Aberdeen, AB23 1XH' - assert letter_contacts[0].is_default - assert response['data']['letter_contact_block'] == 'Aberdeen, AB23 1XH' - - def test_get_letter_contacts_when_there_are_no_letter_contacts(client, sample_service): response = client.get('/service/{}/letter-contact'.format(sample_service.id), headers=[create_authorization_header()])