Included reference when persisting the notification.

This was already part of the data model.
Not included in the send_sms|email task because there is no reference from the job.
This commit is contained in:
Rebecca Law
2016-11-16 15:44:16 +00:00
parent a3eeb1a477
commit 924cec05b4
4 changed files with 14 additions and 9 deletions

View File

@@ -46,7 +46,8 @@ def persist_notification(template_id,
key_type, key_type,
created_at=None, created_at=None,
job_id=None, job_id=None,
job_row_number=None): job_row_number=None,
reference=None):
notification = Notification( notification = Notification(
template_id=template_id, template_id=template_id,
template_version=template_version, template_version=template_version,
@@ -56,9 +57,10 @@ def persist_notification(template_id,
notification_type=notification_type, notification_type=notification_type,
api_key_id=api_key_id, api_key_id=api_key_id,
key_type=key_type, key_type=key_type,
created_at=created_at if created_at else datetime.utcnow().strftime(DATETIME_FORMAT), created_at=created_at or datetime.utcnow().strftime(DATETIME_FORMAT),
job_id=job_id, job_id=job_id,
job_row_number=job_row_number job_row_number=job_row_number,
reference=reference
) )
dao_create_notification(notification) dao_create_notification(notification)
return notification return notification

View File

@@ -101,7 +101,7 @@ post_email_response = {
def create_post_sms_response_from_notification(notification, body, from_number, url_root): def create_post_sms_response_from_notification(notification, body, from_number, url_root):
return {"id": notification.id, return {"id": notification.id,
"reference": None, # not yet implemented "reference": notification.reference,
"content": {'body': body, "content": {'body': body,
'from_number': from_number}, 'from_number': from_number},
"uri": "{}/v2/notifications/{}".format(url_root, str(notification.id)), "uri": "{}/v2/notifications/{}".format(url_root, str(notification.id)),

View File

@@ -37,7 +37,8 @@ def post_sms_notification():
personalisation=form.get('personalisation', None), personalisation=form.get('personalisation', None),
notification_type=SMS_TYPE, notification_type=SMS_TYPE,
api_key_id=api_user.id, api_key_id=api_user.id,
key_type=api_user.key_type) key_type=api_user.key_type,
reference=form['reference'])
send_notification_to_queue(notification, service.research_mode) send_notification_to_queue(notification, service.research_mode)
resp = create_post_sms_response_from_notification(notification, resp = create_post_sms_response_from_notification(notification,
@@ -63,7 +64,8 @@ def post_email_notification():
personalisation=form.get('personalisation', None), personalisation=form.get('personalisation', None),
notification_type=EMAIL_TYPE, notification_type=EMAIL_TYPE,
api_key_id=api_user.id, api_key_id=api_user.id,
key_type=api_user.key_type) key_type=api_user.key_type,
reference=form['reference'])
send_notification_to_queue(notification, service.research_mode) send_notification_to_queue(notification, service.research_mode)

View File

@@ -12,7 +12,8 @@ def test_post_sms_notification_returns_201(notify_api, sample_template, mocker):
mocked = mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') mocked = mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async')
data = { data = {
'phone_number': '+447700900855', 'phone_number': '+447700900855',
'template_id': str(sample_template.id) 'template_id': str(sample_template.id),
'reference': 'reference_from_client'
} }
auth_header = create_authorization_header(service_id=sample_template.service_id) auth_header = create_authorization_header(service_id=sample_template.service_id)
@@ -27,7 +28,7 @@ def test_post_sms_notification_returns_201(notify_api, sample_template, mocker):
assert len(notifications) == 1 assert len(notifications) == 1
notification_id = notifications[0].id notification_id = notifications[0].id
assert resp_json['id'] is not None assert resp_json['id'] is not None
assert resp_json['reference'] is None assert resp_json['reference'] == 'reference_from_client'
assert resp_json['content']['body'] == sample_template.content assert resp_json['content']['body'] == sample_template.content
assert resp_json['content']['from_number'] == sample_template.service.sms_sender assert resp_json['content']['from_number'] == sample_template.service.sms_sender
assert 'v2/notifications/{}'.format(notification_id) in resp_json['uri'] assert 'v2/notifications/{}'.format(notification_id) in resp_json['uri']
@@ -122,7 +123,7 @@ def test_post_email_notification_returns_201(client, sample_email_template, mock
assert len(notifications) == 1 assert len(notifications) == 1
notification_id = notifications[0].id notification_id = notifications[0].id
assert resp_json['id'] is not None assert resp_json['id'] is not None
assert resp_json['reference'] is None assert resp_json['reference'] == "reference from caller"
assert resp_json['content']['body'] == sample_email_template.content assert resp_json['content']['body'] == sample_email_template.content
assert resp_json['content']['subject'] == sample_email_template.subject assert resp_json['content']['subject'] == sample_email_template.subject
assert resp_json['content']['from_email'] == sample_email_template.service.email_from assert resp_json['content']['from_email'] == sample_email_template.service.email_from