diff --git a/endpoints/user.post.py b/endpoints/user.post.py new file mode 100644 index 0000000..acf55ac --- /dev/null +++ b/endpoints/user.post.py @@ -0,0 +1,72 @@ +from fastapi import APIRouter, Depends, HTTPException +from core.database import fake_users_db +import uuid + +router = APIRouter() + +@router.get("/users/{user_id}") +async def get_user_handler( + user_id: str, + db: Session = Depends(get_db), + token: str = Depends(oauth2_scheme) +): + """Get user profile by ID""" + user = fake_users_db.get(user_id) + if not user: + raise HTTPException(status_code=404, detail="User not found") + return { + "message": "User found", + "data": user + } + +@router.put("/users/{user_id}") +async def update_user_handler( + user_id: str, + user_data: UserUpdateSchema, + db: Session = Depends(get_db), + token: str = Depends(oauth2_scheme) +): + """Update user profile""" + user = fake_users_db.get(user_id) + if not user: + raise HTTPException(status_code=404, detail="User not found") + + updated_user = update_user(user, user_data) + fake_users_db[user_id] = updated_user + + return { + "message": "User updated successfully", + "data": updated_user + } + +@router.delete("/users/{user_id}") +async def delete_user_handler( + user_id: str, + db: Session = Depends(get_db), + token: str = Depends(oauth2_scheme) +): + """Delete user profile""" + user = fake_users_db.get(user_id) + if not user: + raise HTTPException(status_code=404, detail="User not found") + + del fake_users_db[user_id] + + return { + "message": "User deleted successfully" + } + +@router.get("/users") +async def list_users_handler( + db: Session = Depends(get_db), + token: str = Depends(oauth2_scheme) +): + """List all users""" + users = list(fake_users_db.values()) + return { + "message": "Users retrieved successfully", + "data": users, + "metadata": { + "total": len(users) + } + } \ No newline at end of file