update endopoints

This commit is contained in:
ben
2026-08-17 15:15:37 +02:00
parent 80e46c09a3
commit 36a6c47081
2 changed files with 65 additions and 11 deletions
+28 -9
View File
@@ -3,10 +3,11 @@ from pydantic import BaseModel
from database import fetch_all, fetch_one from database import fetch_all, fetch_one
from auth import create_user, verify_user, create_token, get_current_user 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 permissions import has_role
from events import create_event, get_user_events, check_event_threshold 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 event_signups import respond_to_event, count_confirmations
from fastapi import HTTPException from fastapi import HTTPException
@@ -60,6 +61,11 @@ class EventUpdate(BaseModel):
end_time: str | None = None end_time: str | None = None
min_people: int | None = None min_people: int | None = None
class RoomUpdate(BaseModel):
new_name: str
room_id: int
updated_by: int
app = FastAPI( app = FastAPI(
title="Calendar API", title="Calendar API",
description="Room based agenda system", description="Room based agenda system",
@@ -161,7 +167,6 @@ def delete_room(
room_id: int, room_id: int,
user_id: int = Depends(get_current_user) user_id: int = Depends(get_current_user)
): ):
if not has_role( if not has_role(
room_id, room_id,
user_id, user_id,
@@ -170,13 +175,27 @@ def delete_room(
return { return {
"status": "denied", "status": "denied",
"reason": "no_permission" "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") @app.post("/create-room")
def api_create_room( def api_create_room(
+35
View File
@@ -244,3 +244,38 @@ def leave_room(room_id, user_id):
user_id user_id
) )
) )
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
}