1- from datetime import datetime
21import uuid
32from .. import schemas , models
43from sqlalchemy .orm import Session
@@ -31,20 +30,18 @@ def create_post(post: schemas.CreatePostSchema, db: Session = Depends(get_db), o
3130@router .put ('/{id}' , response_model = schemas .PostResponse )
3231def update_post (id : str , post : schemas .UpdatePostSchema , db : Session = Depends (get_db ), user_id : str = Depends (require_user )):
3332 post_query = db .query (models .Post ).filter (models .Post .id == id )
34- db_post = post_query .first ()
33+ updated_post = post_query .first ()
3534
36- if not db_post :
35+ if not updated_post :
3736 raise HTTPException (status_code = status .HTTP_200_OK ,
3837 detail = f'No post with this id: { id } found' )
39- if db_post .user_id != uuid .UUID (user_id ):
38+ if updated_post .user_id != uuid .UUID (user_id ):
4039 raise HTTPException (status_code = status .HTTP_403_FORBIDDEN ,
4140 detail = 'You are not allowed to perform this action' )
42- post .user_id = db_post .user_id
43- post .created_at = db_post .created_at
44- post .updated_at = datetime .utcnow ()
45- post_query .update (post .dict (exclude_none = True ), synchronize_session = False )
41+ post .user_id = user_id
42+ post_query .update (post .dict (exclude_unset = True ), synchronize_session = False )
4643 db .commit ()
47- return db_post
44+ return updated_post
4845
4946
5047@router .get ('/{id}' , response_model = schemas .PostResponse )
@@ -63,6 +60,10 @@ def delete_post(id: str, db: Session = Depends(get_db), user_id: str = Depends(r
6360 if not post :
6461 raise HTTPException (status_code = status .HTTP_404_NOT_FOUND ,
6562 detail = f'No post with this id: { id } found' )
63+
64+ if str (post .user_id ) != user_id :
65+ raise HTTPException (status_code = status .HTTP_403_FORBIDDEN ,
66+ detail = 'You are not allowed to perform this action' )
6667 post_query .delete (synchronize_session = False )
6768 db .commit ()
6869 return Response (status_code = status .HTTP_204_NO_CONTENT )
0 commit comments