rm db / updates main.py rooms.py

This commit is contained in:
ben
2026-08-04 10:11:46 +02:00
parent 64803eb343
commit d2bd05c660
4 changed files with 129 additions and 5 deletions
+94 -2
View File
@@ -1,6 +1,6 @@
from fastapi import FastAPI
from pydantic import BaseModel
from database import execute, fetch_one
from database import execute, fetch_one, fetch_all
DEFAULT_ROLE = "member"
@@ -109,4 +109,96 @@ def accept_room(user_id, invite_code):
return {
"room_id": room_id,
"member_id": member_id
}
}
def get_rooms(user_id):
query = """
SELECT
rooms.id,
rooms.name,
rooms.owner_id,
rooms.invite_code,
room_members.role
FROM rooms
JOIN room_members
ON rooms.id = room_members.room_id
WHERE room_members.user_id = ?
"""
rooms = fetch_all(
query,
(
user_id,
)
)
return rooms
def delete_room(room_id):
execute(
"""
DELETE FROM rooms
WHERE id = ?
""",
(room_id,)
)
return {"status":"deleted"}
def get_room(room_id, user_id):
room = fetch_one(
"""
SELECT
rooms.id,
rooms.name,
rooms.owner_id,
room_members.role
FROM rooms
JOIN room_members
ON rooms.id = room_members.room_id
WHERE rooms.id = ?
AND room_members.user_id = ?
""",
(
room_id,
user_id
)
)
if room is None:
return None
members = fetch_all(
"""
SELECT
users.id,
users.username,
room_members.role
FROM room_members
JOIN users
ON users.id = room_members.user_id
WHERE room_members.room_id = ?
""",
(room_id,)
)
events = fetch_all(
"""
SELECT *
FROM events
WHERE room_id = ?
ORDER BY start_time
""",
(room_id,)
)
return {
"room": dict(room),
"members": [dict(member) for member in members],
"events": [dict(event) for event in events]
}