from notifications_utils.template import WithSubjectTemplate 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"}, "html": {"type": ["string", "null"]}, }, "required": ["id", "type", "version", "body"], "additionalProperties": False, } def create_post_template_preview_response(template, template_object): if template.template_type == SMS_TYPE: subject = None body = str(template_object) else: subject = template_object.subject body = WithSubjectTemplate.__str__(template_object) return { "id": template.id, "type": template.template_type, "version": template.version, "body": body, "html": get_html_email_body_from_template(template_object), "subject": subject, "postage": template.postage }