Files
calendar/backend/rooms.py
T
2026-08-03 15:32:45 +02:00

123 lines
1.9 KiB
Python

from fastapi import FastAPI
from pydantic import BaseModel
from database import execute, fetch_one
DEFAULT_ROLE = "member"
def create_room(
room_name,
creator_id,
invite_code
):
query = """
INSERT INTO "main"."rooms"
("name", "owner_id", "invite_code")
VALUES (?, ?, ?);
"""
room_id = execute(
query,
(
room_name,
creator_id,
invite_code
)
)
query2 = """
SELECT id
FROM rooms
WHERE invite_code = ?
"""
room = fetch_one(
query2,
(
invite_code,
)
)
if room is None:
return None
room_id = room["id"]
role = DEFAULT_ROLE
query3 = """
INSERT INTO "main"."room_members"
("room_id", "user_id", "role")
VALUES (?, ?, ?);
"""
member_id = execute(
query3,
(
room_id,
creator_id,
role
)
)
return {
"room_id": room_id,
"member_id": member_id
}
def search_room(
invite_code
):
query = """
SELECT name
FROM rooms
WHERE invite_code = ?
"""
room = fetch_one(
query,
(
invite_code,
)
)
if room is None:
return None
return room["name"]
def accept_room(
user_id,
invite_code
):
query = """
SELECT id
FROM rooms
WHERE invite_code = ?
"""
room = fetch_one(
query,
(
invite_code,
)
)
if room is None:
return None
room_id = room["id"]
role = DEFAULT_ROLE
query2 = """
INSERT INTO "main"."room_members"
("room_id", "user_id", "role")
VALUES (?, ?, ?);
"""
member_id = execute(
query2,
(
room_id,
user_id,
role
)
)
return {
"room_id": room_id,
"member_id": member_id
}