This commit is contained in:
Kenneth Kehl
2023-08-29 14:54:30 -07:00
parent 19dcd7a48b
commit 1ecb747c6d
588 changed files with 34100 additions and 23589 deletions

View File

@@ -2,6 +2,6 @@ from flask import Blueprint
from app.v2.errors import register_errors
v2_template_blueprint = Blueprint("v2_template", __name__, url_prefix='/v2/template')
v2_template_blueprint = Blueprint("v2_template", __name__, url_prefix="/v2/template")
register_errors(v2_template_blueprint)

View File

@@ -7,15 +7,16 @@ from app.v2.template import v2_template_blueprint
from app.v2.template.template_schemas import get_template_by_id_request
@v2_template_blueprint.route("/<template_id>", methods=['GET'])
@v2_template_blueprint.route("/<template_id>/version/<int:version>", methods=['GET'])
@v2_template_blueprint.route("/<template_id>", methods=["GET"])
@v2_template_blueprint.route("/<template_id>/version/<int:version>", methods=["GET"])
def get_template_by_id(template_id, version=None):
_data = {'id': template_id}
_data = {"id": template_id}
if version:
_data['version'] = version
_data["version"] = version
data = validate(_data, get_template_by_id_request)
template = templates_dao.dao_get_template_by_id_and_service_id(
template_id, authenticated_service.id, data.get('version'))
template_id, authenticated_service.id, data.get("version")
)
return jsonify(template.serialize_for_v2()), 200

View File

@@ -12,7 +12,7 @@ from app.v2.template.template_schemas import (
from app.v2.utils import get_valid_json
@v2_template_blueprint.route("/<template_id>/preview", methods=['POST'])
@v2_template_blueprint.route("/<template_id>/preview", methods=["POST"])
def post_template_preview(template_id):
# The payload is empty when there are no place holders in the template.
_data = request.get_data(as_text=True)
@@ -21,26 +21,30 @@ def post_template_preview(template_id):
else:
_data = get_valid_json()
_data['id'] = template_id
_data["id"] = template_id
data = validate(_data, post_template_preview_request)
template = templates_dao.dao_get_template_by_id_and_service_id(
template_id, authenticated_service.id)
template_id, authenticated_service.id
)
template_object = template._as_utils_template_with_personalisation(
data.get('personalisation')
data.get("personalisation")
)
check_placeholders(template_object)
resp = create_post_template_preview_response(template=template,
template_object=template_object)
resp = create_post_template_preview_response(
template=template, template_object=template_object
)
return jsonify(resp), 200
def check_placeholders(template_object):
if template_object.missing_data:
message = 'Missing personalisation: {}'.format(", ".join(template_object.missing_data))
raise BadRequestError(message=message, fields=[{'template': message}])
message = "Missing personalisation: {}".format(
", ".join(template_object.missing_data)
)
raise BadRequestError(message=message, fields=[{"template": message}])

View File

@@ -5,10 +5,7 @@ get_template_by_id_request = {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "schema for parameters allowed when getting template by id",
"type": "object",
"properties": {
"id": uuid,
"version": {"type": ["integer", "null"], "minimum": 1}
},
"properties": {"id": uuid, "version": {"type": ["integer", "null"], "minimum": 1}},
"required": ["id"],
"additionalProperties": False,
}
@@ -24,12 +21,12 @@ get_template_by_id_response = {
"created_at": {
"format": "date-time",
"type": "string",
"description": "Date+time created"
"description": "Date+time created",
},
"updated_at": {
"format": "date-time",
"type": ["string", "null"],
"description": "Date+time updated"
"description": "Date+time updated",
},
"created_by": {"type": "string"},
"version": {"type": "integer"},
@@ -37,7 +34,16 @@ get_template_by_id_response = {
"subject": {"type": ["string", "null"]},
"name": {"type": "string"},
},
"required": ["id", "type", "created_at", "updated_at", "version", "created_by", "body", "name"],
"required": [
"id",
"type",
"created_at",
"updated_at",
"version",
"created_by",
"body",
"name",
],
}
post_template_preview_request = {
@@ -45,11 +51,8 @@ post_template_preview_request = {
"description": "POST template schema",
"type": "object",
"title": "POST v2/template/{id}/preview",
"properties": {
"id": uuid,
"personalisation": personalisation
},
"required": ["id"]
"properties": {"id": uuid, "personalisation": personalisation},
"required": ["id"],
}
post_template_preview_response = {
@@ -76,6 +79,6 @@ def create_post_template_preview_response(template, template_object):
"type": template.template_type,
"version": template.version,
"body": template_object.content_with_placeholders_filled_in,
"html": getattr(template_object, 'html_body', None),
"subject": getattr(template_object, 'subject', None),
"html": getattr(template_object, "html_body", None),
"subject": getattr(template_object, "subject", None),
}