Upsert into letter contact table when updating a service's letter contact block

This commit is contained in:
Imdad Ahad
2017-09-25 16:01:24 +01:00
parent 3977574ef1
commit f0784109a1
2 changed files with 30 additions and 3 deletions

View File

@@ -46,8 +46,14 @@ from app.dao.service_whitelist_dao import (
dao_add_and_commit_whitelisted_contacts, dao_add_and_commit_whitelisted_contacts,
dao_remove_service_whitelist dao_remove_service_whitelist
) )
from app.dao.service_email_reply_to_dao import create_or_update_email_reply_to, dao_get_reply_to_by_service_id, \ from app.dao.service_email_reply_to_dao import (
add_reply_to_email_address_for_service, update_reply_to_email_address, dao_get_reply_to_by_id 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 create_or_update_letter_contact
from app.dao.provider_statistics_dao import get_fragment_count from app.dao.provider_statistics_dao import get_fragment_count
from app.dao.users_dao import get_user_by_id from app.dao.users_dao import get_user_by_id
from app.errors import ( from app.errors import (
@@ -151,6 +157,9 @@ def update_service(service_id):
if 'sms_sender' in req_json: if 'sms_sender' in req_json:
insert_or_update_service_sms_sender(fetched_service, req_json['sms_sender']) insert_or_update_service_sms_sender(fetched_service, req_json['sms_sender'])
if 'letter_contact_block' in req_json:
create_or_update_letter_contact(fetched_service.id, req_json['letter_contact_block'])
if service_going_live: if service_going_live:
send_notification_to_service_users( send_notification_to_service_users(
service_id=service_id, service_id=service_id,

View File

@@ -12,7 +12,7 @@ from app.dao.services_dao import dao_remove_user_from_service
from app.dao.templates_dao import dao_redact_template from app.dao.templates_dao import dao_redact_template
from app.dao.users_dao import save_model_user from app.dao.users_dao import save_model_user
from app.models import ( from app.models import (
User, Organisation, Service, ServicePermission, Notification, ServiceEmailReplyTo, User, Organisation, Service, ServicePermission, Notification, ServiceEmailReplyTo, ServiceLetterContact,
DVLA_ORG_LAND_REGISTRY, DVLA_ORG_LAND_REGISTRY,
KEY_TYPE_NORMAL, KEY_TYPE_TEAM, KEY_TYPE_TEST, KEY_TYPE_NORMAL, KEY_TYPE_TEAM, KEY_TYPE_TEST,
EMAIL_TYPE, SMS_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, INBOUND_SMS_TYPE, EMAIL_TYPE, SMS_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, INBOUND_SMS_TYPE,
@@ -2301,3 +2301,21 @@ def test_get_email_reply_to_address(client, notify_db, notify_db_session):
assert response.status_code == 200 assert response.status_code == 200
assert json.loads(response.get_data(as_text=True)) == reply_to.serialize() 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'