mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -05:00
This was already part of the data model. Not included in the send_sms|email task because there is no reference from the job.
132 lines
4.2 KiB
Python
132 lines
4.2 KiB
Python
from app.schema_validation.definitions import (uuid, personalisation)
|
|
|
|
post_sms_request = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "POST sms notification schema",
|
|
"type": "object",
|
|
"title": "POST v2/notifications/sms",
|
|
"properties": {
|
|
"reference": {"type": "string"},
|
|
"phone_number": {"type": "string", "format": "phone_number"},
|
|
"template_id": uuid,
|
|
"personalisation": personalisation
|
|
},
|
|
"required": ["phone_number", "template_id"]
|
|
}
|
|
|
|
sms_content = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "content schema for SMS notification response schema",
|
|
"type": "object",
|
|
"title": "notification content",
|
|
"properties": {
|
|
"body": {"type": "string"},
|
|
"from_number": {"type": "string"}
|
|
},
|
|
"required": ["body"]
|
|
}
|
|
|
|
# this may belong in a templates module
|
|
template = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "template schema",
|
|
"type": "object",
|
|
"title": "notification content",
|
|
"properties": {
|
|
"id": uuid,
|
|
"version": {"type": "integer"},
|
|
"uri": {"type": "string"}
|
|
},
|
|
"required": ["id", "version", "uri"]
|
|
}
|
|
|
|
post_sms_response = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "POST sms notification response schema",
|
|
"type": "object",
|
|
"title": "response v2/notifications/sms",
|
|
"properties": {
|
|
"id": uuid,
|
|
"reference": {"type": "string"},
|
|
"content": sms_content,
|
|
"uri": {"type": "string"},
|
|
"template": template
|
|
},
|
|
"required": ["id", "content", "uri", "template"]
|
|
}
|
|
|
|
|
|
post_email_request = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "POST email notification schema",
|
|
"type": "object",
|
|
"title": "POST v2/notifications/email",
|
|
"properties": {
|
|
"reference": {"type": "string"},
|
|
"email_address": {"type": "string", "format": "email_address"},
|
|
"template_id": uuid,
|
|
"personalisation": personalisation
|
|
},
|
|
"required": ["email_address", "template_id"]
|
|
}
|
|
|
|
email_content = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "Email content for POST email notification",
|
|
"type": "object",
|
|
"title": "notification email content",
|
|
"properties": {
|
|
"from_email": {"type": "string", "format": "email_address"},
|
|
"body": {"type": "string"},
|
|
"subject": {"type": "string"}
|
|
},
|
|
"required": ["body"]
|
|
}
|
|
|
|
post_email_response = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "POST sms notification response schema",
|
|
"type": "object",
|
|
"title": "response v2/notifications/email",
|
|
"properties": {
|
|
"id": uuid,
|
|
"reference": {"type": "string"},
|
|
"content": email_content,
|
|
"uri": {"type": "string"},
|
|
"template": template
|
|
},
|
|
"required": ["id", "content", "uri", "template"]
|
|
}
|
|
|
|
|
|
def create_post_sms_response_from_notification(notification, body, from_number, url_root):
|
|
return {"id": notification.id,
|
|
"reference": notification.reference,
|
|
"content": {'body': body,
|
|
'from_number': from_number},
|
|
"uri": "{}/v2/notifications/{}".format(url_root, str(notification.id)),
|
|
"template": __create_template_from_notification(notification=notification, url_root=url_root)
|
|
}
|
|
|
|
|
|
def create_post_email_response_from_notification(notification, content, subject, email_from, url_root):
|
|
return {
|
|
"id": notification.id,
|
|
"reference": notification.reference,
|
|
"content": {
|
|
"from_email": email_from,
|
|
"body": content,
|
|
"subject": subject
|
|
},
|
|
"uri": "{}/v2/notifications/{}".format(url_root, str(notification.id)),
|
|
"template": __create_template_from_notification(notification=notification, url_root=url_root)
|
|
}
|
|
|
|
|
|
def __create_template_from_notification(notification, url_root):
|
|
return {
|
|
"id": notification.template_id,
|
|
"version": notification.template_version,
|
|
"uri": "{}/v2/templates/{}".format(url_root, str(notification.template_id))
|
|
}
|