first commit
This commit is contained in:
commit
efa5080897
127 changed files with 18610 additions and 0 deletions
32
backend/app/template_validators.py
Normal file
32
backend/app/template_validators.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue