update endopoints
This commit is contained in:
+25
-6
@@ -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,
|
||||||
@@ -171,12 +176,26 @@ def delete_room(
|
|||||||
"status": "denied",
|
"status": "denied",
|
||||||
"reason": "no_permission"
|
"reason": "no_permission"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 {
|
return {
|
||||||
"status": "not deleted",
|
"status": "denied",
|
||||||
"reason": "you are a poopie",
|
"reason": "no_permission"
|
||||||
"actual Reason": "i have not built it yet"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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(
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user