meerdere updates
This commit is contained in:
+76
-16
@@ -2,10 +2,15 @@ from fastapi import FastAPI, Depends
|
||||
from pydantic import BaseModel
|
||||
|
||||
from database import fetch_all, fetch_one
|
||||
from events import create_event
|
||||
from events import create_event, get_user_events
|
||||
from auth import create_user, verify_user, create_token, get_current_user
|
||||
from rooms import create_room, search_room, accept_room
|
||||
from permissions import has_role
|
||||
from events import create_event, get_user_events, check_event_threshold
|
||||
|
||||
from fastapi import HTTPException
|
||||
import sqlite3
|
||||
from typing import Literal
|
||||
|
||||
class Login(BaseModel):
|
||||
username: str
|
||||
@@ -118,6 +123,42 @@ def get_me(
|
||||
|
||||
# rooms
|
||||
|
||||
@app.delete("/room/{room_id}")
|
||||
def delete_room(
|
||||
room_id: int,
|
||||
user_id: int = Depends(get_current_user)
|
||||
):
|
||||
|
||||
if not has_role(
|
||||
room_id,
|
||||
user_id,
|
||||
["owner", "admin"]
|
||||
):
|
||||
return {
|
||||
"status": "denied",
|
||||
"reason": "no_permission"
|
||||
}
|
||||
return {
|
||||
"status": "deleted"
|
||||
}
|
||||
|
||||
|
||||
# @app.post("/create-room")
|
||||
# def api_create_room(
|
||||
# room: RoomCreate,
|
||||
# user_id: int = Depends(get_current_user)
|
||||
# ):
|
||||
|
||||
# room_id = create_room(
|
||||
# user_id,
|
||||
# room.room_name,
|
||||
# room.invite_code
|
||||
# )
|
||||
|
||||
# return {
|
||||
# "status": "created",
|
||||
# **room_id
|
||||
# }
|
||||
|
||||
@app.post("/create-room")
|
||||
def api_create_room(
|
||||
@@ -125,18 +166,24 @@ def api_create_room(
|
||||
user_id: int = Depends(get_current_user)
|
||||
):
|
||||
|
||||
room_id = create_room(
|
||||
room.room_name,
|
||||
user_id,
|
||||
room.invite_code
|
||||
)
|
||||
try:
|
||||
room_id = create_room(
|
||||
user_id,
|
||||
room.room_name,
|
||||
room.invite_code
|
||||
)
|
||||
|
||||
except sqlite3.IntegrityError:
|
||||
raise HTTPException(
|
||||
status_code=409,
|
||||
detail="invite_code already exists"
|
||||
)
|
||||
|
||||
return {
|
||||
"status": "created",
|
||||
"room_id": room_id
|
||||
}
|
||||
|
||||
|
||||
@app.post("/search-room")
|
||||
def api_search_room(
|
||||
room: RoomSearch
|
||||
@@ -188,7 +235,6 @@ def api_create_event(
|
||||
user_id: int = Depends(get_current_user)
|
||||
):
|
||||
|
||||
# check of gebruiker lid is
|
||||
member = fetch_one(
|
||||
"""
|
||||
SELECT *
|
||||
@@ -233,15 +279,29 @@ def get_events(
|
||||
user_id: int = Depends(get_current_user)
|
||||
):
|
||||
|
||||
events = fetch_all(
|
||||
"""
|
||||
SELECT *
|
||||
FROM events
|
||||
WHERE creator_id = ?
|
||||
""",
|
||||
(user_id,)
|
||||
)
|
||||
events = get_user_events(user_id)
|
||||
|
||||
return {
|
||||
"events": [dict(event) for event in events]
|
||||
}
|
||||
|
||||
|
||||
@app.post("/events/{event_id}/respond")
|
||||
def respond_event(
|
||||
event_id: int,
|
||||
status: Literal["going", "maybe", "declined"],
|
||||
user_id: int = Depends(get_current_user)
|
||||
):
|
||||
|
||||
respond_to_event(
|
||||
event_id,
|
||||
user_id,
|
||||
status
|
||||
)
|
||||
|
||||
check_event_threshold(event_id)
|
||||
|
||||
return {
|
||||
"status": "response_saved",
|
||||
"going": count_confirmations(event_id)
|
||||
}
|
||||
Reference in New Issue
Block a user