urmi-ai/backend/app/template_validators.py
2026-10-02 11:22:40 +05:30

32 lines
1,006 B
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import re
TEMPLATE_NAME_PATTERN = re.compile(r"^[A-Z0-9_]{3,40}$")
DLT_TEMPLATE_ID_PATTERN = re.compile(r"^\d{12,25}$")
VARIABLE_TOKEN = "{#var#}"
def normalize_template_name(value: str) -> str:
return value.strip().upper().replace(" ", "_")
def validate_template_name(value: str) -> str:
name = normalize_template_name(value)
if not TEMPLATE_NAME_PATTERN.match(name):
raise ValueError("Template name must be 3–40 uppercase letters, numbers, or underscores")
return name
def validate_template_text(value: str) -> str:
text = value.strip()
if len(text) < 10:
raise ValueError("Template must be at least 10 characters")
if len(text) > 1000:
raise ValueError("Template must be 1000 characters or fewer")
return text
def validate_dlt_template_id(value: str) -> str:
template_id = value.strip()
if not DLT_TEMPLATE_ID_PATTERN.match(template_id):
raise ValueError("DLT Template ID must be 12–25 digits")
return template_id