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, }