Files
calendar/backend/rooms.py
T
2026-08-18 14:27:52 +02:00

55 lines
1.0 KiB
Python

import re
import secrets
import string
from database import execute, fetch_one, fetch_all
DEFAULT_ROLE = "member"
def validate_invite_code(invite_code: str):
if not 6 <= len(invite_code) <= 32:
return False
if not re.fullmatch(r"[A-Za-z0-9]+", invite_code):
return False
return True
def create_room(user_id: int, room_name: str, invite_code: str):
if not validate_invite_code(invite_code):
return {
"status": "failed",
"reason": "invalid_invite_code",
}
room_id = execute(
"""
INSERT INTO rooms (name, owner_id, invite_code)
VALUES (?, ?, ?)
""",
(
room_name,
user_id,
invite_code,
)
)
member_id = execute(
"""
INSERT INTO room_members (room_id, user_id, role)
VALUES (?, ?, ?)
""",
(
room_id,
user_id,
"owner",
)
)
return {
"room_id": room_id,
"member_id": member_id,
}