update remove_user_as_admin
This commit is contained in:
@@ -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 import FastAPI, Depends, HTTPException
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
from fastapi.responses import PlainTextResponse
|
from fastapi.responses import PlainTextResponse
|
||||||
@@ -31,6 +33,7 @@ from rooms import (
|
|||||||
delete_room as delete_room_db,
|
delete_room as delete_room_db,
|
||||||
change_room_name,
|
change_room_name,
|
||||||
regenerate_invite_code,
|
regenerate_invite_code,
|
||||||
|
remove_room_member,
|
||||||
)
|
)
|
||||||
|
|
||||||
from events import (
|
from events import (
|
||||||
@@ -368,6 +371,29 @@ def api_leave_room(
|
|||||||
"status": "left",
|
"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
|
# some settings
|
||||||
|
|
||||||
@app.patch("/rooms/{room_id}")
|
@app.patch("/rooms/{room_id}")
|
||||||
|
|||||||
@@ -303,3 +303,26 @@ def regenerate_invite_code(room_id):
|
|||||||
"room_id": room_id,
|
"room_id": room_id,
|
||||||
"invite_code": new_code
|
"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
|
||||||
Reference in New Issue
Block a user