lab4 / app /core /config.py
brestok's picture
init
a08f988
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent.parent
DATA_DIR = BASE_DIR / "data"
TABLE_PARTICIPANTS = "participants"
TABLE_TOPICS = "topics"
TABLE_MESSAGES = "messages"
PARTICIPANTS_FILE = DATA_DIR / "participants.txt"
TOPICS_FILE = DATA_DIR / "topics.txt"
MESSAGES_FILE = DATA_DIR / "messages.txt"
PARTICIPANT_SEPARATOR = "|"
PARTICIPANT_EXPECTED_PARTS = 6
TOPIC_SEPARATOR = "|"
TOPIC_EXPECTED_PARTS = 6
TOPIC_LIST_SEPARATOR = ";"
TOPIC_INNER_SEPARATOR = ","
TOPIC_MESSAGE_PART_SEPARATOR = "^"
MESSAGE_SEPARATOR = "|"
MESSAGE_EXPECTED_PARTS = 6
ENCODING_UTF8 = "utf-8"
ENCODING_ASCII = "ascii"
NEWLINE = "\n"
ALPHABET = (
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
"0123456789"
r"""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ """
)
NAME_MIN_LENGTH = 1
NAME_MAX_LENGTH = 100
RATING_MIN_VALUE = 0
TOPIC_TITLE_MIN_LENGTH = 1
TOPIC_TITLE_MAX_LENGTH = 200
TOPIC_DESCRIPTION_MIN_LENGTH = 1
TOPIC_DESCRIPTION_MAX_LENGTH = 1000
TOPIC_MESSAGE_MIN_LENGTH = 1
TOPIC_MESSAGE_MAX_LENGTH = 2000
PARTICIPANT_PARSE_EMPTY_ERROR = "Cannot parse empty participant line"
PARTICIPANT_PARSE_INVALID_ERROR = "Invalid participant line format"
TOPIC_PARSE_EMPTY_ERROR = "Cannot parse empty topic line"
TOPIC_PARSE_INVALID_ERROR = "Invalid topic line format"
MESSAGE_PARSE_EMPTY_ERROR = "Cannot parse empty message line"
MESSAGE_PARSE_INVALID_ERROR = "Invalid message line format"
PARTICIPANT_NOT_FOUND_MESSAGE = "Participant not found"
TOPIC_NOT_FOUND_MESSAGE = "Topic not found"
MESSAGE_NOT_FOUND_MESSAGE = "Message not found"
UNKNOWN_PARTICIPANT_NAME = "Unknown participant"
UNKNOWN_TOPIC_TITLE = "Unknown topic"
APP_TITLE = "Forum Storage API"
PARTICIPANTS_ROUTE_PREFIX = "/participants"
TOPICS_ROUTE_PREFIX = "/topics"
MESSAGES_ROUTE_PREFIX = "/messages"
PARTICIPANTS_TAG = "participants"
TOPICS_TAG = "topics"
MESSAGES_TAG = "messages"
HTTP_STATUS_CREATED = 201
FORBIDDEN_WORDS = ["spam", "hate", "violence", "abuse", "illegal"]
FORBIDDEN_WORDS_MESSAGE = "Message contains forbidden words"
DATA_DIR.mkdir(parents=True, exist_ok=True)
PARTICIPANTS_FILE.touch(exist_ok=True)
TOPICS_FILE.touch(exist_ok=True)
MESSAGES_FILE.touch(exist_ok=True)