From f788319e1d4a8509fc7b4172a9595be60230cd20 Mon Sep 17 00:00:00 2001 From: Samuel Dreyer Date: Wed, 19 Feb 2025 16:52:52 +0000 Subject: [PATCH] added schema and router for getting all the users that have a post with a specific post id --- api_schemas/post_schemas.py | 5 +++++ routes/post_router.py | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/api_schemas/post_schemas.py b/api_schemas/post_schemas.py index ea45a20..b86a5c5 100644 --- a/api_schemas/post_schemas.py +++ b/api_schemas/post_schemas.py @@ -1,4 +1,5 @@ from api_schemas.base_schema import BaseSchema +from api_schemas.user_schemas import UserRead class _PostPermissionRead(BaseSchema): @@ -17,3 +18,7 @@ class PostRead(BaseSchema): class PostCreate(BaseSchema): name: str council_id: int + + +class PostUserRead(BaseSchema): + user: UserRead diff --git a/routes/post_router.py b/routes/post_router.py index c8f500b..70c2c8d 100644 --- a/routes/post_router.py +++ b/routes/post_router.py @@ -2,7 +2,7 @@ from database import DB_dependency from db_models.council_model import Council_DB from db_models.post_model import Post_DB -from api_schemas.post_schemas import PostRead, PostCreate +from api_schemas.post_schemas import PostRead, PostCreate, PostUserRead from user.permission import Permission from fastapi import status, HTTPException @@ -39,3 +39,15 @@ def delete_post(post_id: int, db: DB_dependency): # TODO PATCH + + +@post_router.get("/{post_id}", response_model=list[PostUserRead]) +def users_with_post(db: DB_dependency, post_id: int): + post = db.query(Post_DB).filter(Post_DB.id == post_id).one_or_none() + + if post == None: + raise HTTPException(400, detail="Invalid post id") + + users = post.post_users + + return users