update remove_user_as_admin

This commit is contained in:
ben
2026-08-17 16:57:21 +02:00
parent a8a3ce7399
commit 4e6d58386f
2 changed files with 50 additions and 1 deletions
+26
View File
@@ -1,3 +1,5 @@
# GEEN SQL IN MAIN.PY, DIT IS DE API WRAPPER, HOU HET OVERZICHTELIJK!!
from fastapi import FastAPI, Depends, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import PlainTextResponse
@@ -31,6 +33,7 @@ from rooms import (
delete_room as delete_room_db,
change_room_name,
regenerate_invite_code,
remove_room_member,
)
from events import (
@@ -368,6 +371,29 @@ def api_leave_room(
"status": "left",
}
@app.delete("/rooms/{room_id}/members/{user_id}")
def remove_user_as_admin(
room_id: int,
user_id: int,
current_user: int = Depends(get_current_user),
):
if not has_role(room_id, current_user, "admin"):
raise HTTPException(
status_code=403,
detail="admin permission required",
)
if not remove_room_member(room_id, user_id):
raise HTTPException(
status_code=404,
detail="user is not a member of this room",
)
return {
"status": "removed",
"user_id": user_id,
}
# some settings
@app.patch("/rooms/{room_id}")
+24 -1
View File
@@ -302,4 +302,27 @@ def regenerate_invite_code(room_id):
"status": "updated",
"room_id": room_id,
"invite_code": new_code
}
}
def remove_room_member(room_id, user_id):
member = fetch_one(
"""
SELECT 1
FROM room_members
WHERE room_id = ? AND user_id = ?
""",
(room_id, user_id)
)
if member is None:
return False
execute(
"""
DELETE FROM room_members
WHERE room_id = ? AND user_id = ?
""",
(room_id, user_id)
)
return True