mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -05:00
The use for the public template API is for building caseworking systems or similar, where you might need a list of templates to pick from (ie instead of using the Notify web interface to pick from and send a message). Right now our API isn’t returning the template name as part of the response. The name is a useful, human-friendly way of identifying a template. This commit changes the response to include the name. Some clients will need updating before this can be useful.
82 lines
2.5 KiB
Python
82 lines
2.5 KiB
Python
from app.models import SMS_TYPE, TEMPLATE_TYPES
|
|
from app.schema_validation.definitions import uuid, personalisation
|
|
|
|
|
|
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"},
|
|
},
|
|
"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"]}
|
|
},
|
|
"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),
|
|
"subject": subject
|
|
}
|