mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-22 08:21:13 -05:00
If you’re trying to show what a Notify email will look like in your caseworking system all the API gives you at the moment is raw markdown (with the placeholders replaced). This isn’t that useful if your caseworkers have no idea what markdown is. If we also give teams the HTML then they can embed this in their systems, and the people using those systems will be able to see how headings, bulleted lists, etc. look.
87 lines
2.7 KiB
Python
87 lines
2.7 KiB
Python
from app.models import SMS_TYPE, TEMPLATE_TYPES
|
|
from app.schema_validation.definitions import uuid, personalisation
|
|
from app.utils import get_html_email_body_from_template
|
|
|
|
|
|
get_template_by_id_request = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "schema for parameters allowed when getting template by id",
|
|
"type": "object",
|
|
"properties": {
|
|
"id": uuid,
|
|
"version": {"type": ["integer", "null"], "minimum": 1}
|
|
},
|
|
"required": ["id"],
|
|
"additionalProperties": False,
|
|
}
|
|
|
|
get_template_by_id_response = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "GET template by id schema response",
|
|
"type": "object",
|
|
"title": "reponse v2/template",
|
|
"properties": {
|
|
"id": uuid,
|
|
"type": {"enum": TEMPLATE_TYPES},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"type": "string",
|
|
"description": "Date+time created"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"type": ["string", "null"],
|
|
"description": "Date+time updated"
|
|
},
|
|
"created_by": {"type": "string"},
|
|
"version": {"type": "integer"},
|
|
"body": {"type": "string"},
|
|
"subject": {"type": ["string", "null"]},
|
|
"name": {"type": "string"},
|
|
"postage": {"type": "string"}
|
|
},
|
|
"required": ["id", "type", "created_at", "updated_at", "version", "created_by", "body", "name"],
|
|
}
|
|
|
|
post_template_preview_request = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "POST template schema",
|
|
"type": "object",
|
|
"title": "POST v2/template/{id}/preview",
|
|
"properties": {
|
|
"id": uuid,
|
|
"personalisation": personalisation
|
|
},
|
|
"required": ["id"]
|
|
}
|
|
|
|
post_template_preview_response = {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "POST template preview schema response",
|
|
"type": "object",
|
|
"title": "reponse v2/template/{id}/preview",
|
|
"properties": {
|
|
"id": uuid,
|
|
"type": {"enum": TEMPLATE_TYPES},
|
|
"version": {"type": "integer"},
|
|
"body": {"type": "string"},
|
|
"subject": {"type": ["string", "null"]},
|
|
"postage": {"type": "string"}
|
|
},
|
|
"required": ["id", "type", "version", "body"]
|
|
}
|
|
|
|
|
|
def create_post_template_preview_response(template, template_object):
|
|
subject = template_object.subject if template.template_type != SMS_TYPE else None
|
|
|
|
return {
|
|
"id": template.id,
|
|
"type": template.template_type,
|
|
"version": template.version,
|
|
"body": str(template_object),
|
|
"html": get_html_email_body_from_template(template_object),
|
|
"subject": subject,
|
|
"postage": template.postage
|
|
}
|