22 lines
800 B
Python
22 lines
800 B
Python
from collections.abc import Mapping
|
|
|
|
CHAT_MESSAGE_MAX_LENGTH_KEY = "chat.message.max_length"
|
|
CHAT_MESSAGE_TRANSPORT_MAX_LENGTH = 10_000
|
|
|
|
|
|
def validate_chat_settings(values: Mapping[str, str]) -> None:
|
|
raw = values.get(CHAT_MESSAGE_MAX_LENGTH_KEY)
|
|
if raw is None:
|
|
return
|
|
try:
|
|
value = int(raw)
|
|
except (TypeError, ValueError) as error:
|
|
raise ValueError(f"{CHAT_MESSAGE_MAX_LENGTH_KEY}: integer value expected") from error
|
|
if str(value) != raw:
|
|
raise ValueError(f"{CHAT_MESSAGE_MAX_LENGTH_KEY}: canonical integer value expected")
|
|
if not 1 <= value <= CHAT_MESSAGE_TRANSPORT_MAX_LENGTH:
|
|
raise ValueError(
|
|
f"{CHAT_MESSAGE_MAX_LENGTH_KEY}: value must be between 1 "
|
|
f"and {CHAT_MESSAGE_TRANSPORT_MAX_LENGTH}"
|
|
)
|