mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-03 09:51:11 -05:00
return replaced subject back from get notifications API
This commit is contained in:
@@ -248,7 +248,7 @@ class SmsAdminNotificationSchema(SmsNotificationSchema):
|
|||||||
|
|
||||||
class NotificationStatusSchema(BaseSchema):
|
class NotificationStatusSchema(BaseSchema):
|
||||||
|
|
||||||
template = fields.Nested(TemplateSchema, only=["id", "name", "template_type", "content"], dump_only=True)
|
template = fields.Nested(TemplateSchema, only=["id", "name", "template_type", "content", "subject"], dump_only=True)
|
||||||
job = fields.Nested(JobSchema, only=["id", "original_file_name"], dump_only=True)
|
job = fields.Nested(JobSchema, only=["id", "original_file_name"], dump_only=True)
|
||||||
personalisation = fields.Dict(required=False)
|
personalisation = fields.Dict(required=False)
|
||||||
|
|
||||||
@@ -267,10 +267,13 @@ class NotificationStatusSchema(BaseSchema):
|
|||||||
def handle_template_merge(self, in_data):
|
def handle_template_merge(self, in_data):
|
||||||
if in_data.get('personalisation'):
|
if in_data.get('personalisation'):
|
||||||
from notifications_utils.template import Template
|
from notifications_utils.template import Template
|
||||||
merged = Template(in_data['template'], in_data['personalisation']).replaced
|
template = Template(in_data['template'], in_data['personalisation'])
|
||||||
in_data['body'] = merged
|
in_data['body'] = template.replaced
|
||||||
|
if in_data['template']['template_type'] == 'email':
|
||||||
|
in_data['subject'] = template.replaced_subject
|
||||||
in_data.pop('personalisation', None)
|
in_data.pop('personalisation', None)
|
||||||
in_data['template'].pop('content', None)
|
in_data['template'].pop('content', None)
|
||||||
|
in_data['template'].pop('subject', None)
|
||||||
return in_data
|
return in_data
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1248,6 +1248,30 @@ def test_get_notification_by_id_returns_merged_template_content(notify_db,
|
|||||||
notification = json.loads(response.get_data(as_text=True))['data']['notification']
|
notification = json.loads(response.get_data(as_text=True))['data']['notification']
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert notification['body'] == 'Hello world'
|
assert notification['body'] == 'Hello world'
|
||||||
|
assert 'subject' not in notification
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_notification_by_id_returns_merged_template_content_for_email(
|
||||||
|
notify_db,
|
||||||
|
notify_db_session,
|
||||||
|
notify_api,
|
||||||
|
sample_email_template_with_placeholders
|
||||||
|
):
|
||||||
|
sample_notification = create_sample_notification(notify_db,
|
||||||
|
notify_db_session,
|
||||||
|
template=sample_email_template_with_placeholders,
|
||||||
|
personalisation={"name": "world"})
|
||||||
|
with notify_api.test_request_context(), notify_api.test_client() as client:
|
||||||
|
auth_header = create_authorization_header(service_id=sample_notification.service_id)
|
||||||
|
|
||||||
|
response = client.get(
|
||||||
|
'/notifications/{}'.format(sample_notification.id),
|
||||||
|
headers=[auth_header])
|
||||||
|
|
||||||
|
notification = json.loads(response.get_data(as_text=True))['data']['notification']
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert notification['body'] == 'Hello world'
|
||||||
|
assert notification['subject'] == 'world'
|
||||||
|
|
||||||
|
|
||||||
def test_get_notifications_for_service_returns_merged_template_content(notify_api,
|
def test_get_notifications_for_service_returns_merged_template_content(notify_api,
|
||||||
|
|||||||
Reference in New Issue
Block a user