From 36a6c470810c52fceab0b28810df19ee25596b15 Mon Sep 17 00:00:00 2001 From: ben Date: Mon, 17 Aug 2026 15:15:37 +0200 Subject: [PATCH] update endopoints --- backend/main.py | 37 ++++++++++++++++++++++++++++--------- backend/rooms.py | 39 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 65 insertions(+), 11 deletions(-) diff --git a/backend/main.py b/backend/main.py index 130cff6..1d005d4 100644 --- a/backend/main.py +++ b/backend/main.py @@ -3,10 +3,11 @@ from pydantic import BaseModel from database import fetch_all, fetch_one from auth import create_user, verify_user, create_token, get_current_user -from rooms import create_room, search_room, accept_room, get_rooms, delete_room, get_room +from rooms import create_room, search_room, accept_room, get_rooms, get_room from permissions import has_role from events import create_event, get_user_events, check_event_threshold - +from rooms import delete_room as delete_room_db +from rooms import change_room_name from event_signups import respond_to_event, count_confirmations from fastapi import HTTPException @@ -60,6 +61,11 @@ class EventUpdate(BaseModel): end_time: str | None = None min_people: int | None = None +class RoomUpdate(BaseModel): + new_name: str + room_id: int + updated_by: int + app = FastAPI( title="Calendar API", description="Room based agenda system", @@ -161,7 +167,6 @@ def delete_room( room_id: int, user_id: int = Depends(get_current_user) ): - if not has_role( room_id, user_id, @@ -170,13 +175,27 @@ def delete_room( return { "status": "denied", "reason": "no_permission" - } - return { - "status": "not deleted", - "reason": "you are a poopie", - "actual Reason": "i have not built it yet" - } + } + return delete_room_db(room_id) + +@app.patch("/rooms/{room_id}") +def update_room( + room_id: int, + data: RoomUpdate, + user_id: int = Depends(get_current_user) +): + if not has_role(room_id, user_id, ["owner", "admin"]): + return { + "status": "denied", + "reason": "no_permission" + } + + return change_room_name( + room_id, + data.room_name, + user_id + ) @app.post("/create-room") def api_create_room( diff --git a/backend/rooms.py b/backend/rooms.py index af98250..f8817fb 100644 --- a/backend/rooms.py +++ b/backend/rooms.py @@ -133,7 +133,7 @@ def get_rooms(user_id): ) return rooms - + def delete_room(room_id): room = execute( """ @@ -243,4 +243,39 @@ def leave_room(room_id, user_id): room_id, user_id ) - ) \ No newline at end of file + ) + +def change_room_name(room_id, new_name, user_id): + room = execute( + """ + SELECT id + FROM rooms + WHERE id = ? + """, + (room_id,) + ) + + if not room: + return { + "status": "error", + "reason": "room_not_found" + } + + execute( + """ + UPDATE rooms + SET room_name = ? + WHERE id = ? + """, + ( + new_name, + room_id + ) + ) + + return { + "status": "updated", + "new_name": new_name, + "room_id": room_id, + "updated_by": user_id + } \ No newline at end of file