from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from app.api.core.dependencies import get_db from app.api.v1.services.user import get_user, get_all_user, create_user, update_user, delete_user from app.api.v1.schemas.user import UserBase router = APIRouter() @router.get("/user/", response_model=list) def read_users(db: Session = Depends(get_db)): users = get_all_user(db) return users @router.get("/user/{id}", response_model=UserBase) def read_user(id: int, db: Session = Depends(get_db)): user = get_user(db, id) if not user: raise HTTPException(status_code=404, detail="User not found") return user @router.post("/user/", response_model=UserBase) def create_new_user(user: UserBase, db: Session = Depends(get_db)): return create_user(db, user) @router.put("/user/{id}", response_model=UserBase) def update_user_data(id: int, user: UserBase, db: Session = Depends(get_db)): user_data = get_user(db, id) if not user_data: raise HTTPException(status_code=404, detail="User not found") return update_user(db, user_data, user) @router.delete("/user/{id}", response_model=UserBase) def remove_user(id: int, db: Session = Depends(get_db)): user_data = get_user(db, id) if not user_data: raise HTTPException(status_code=404, detail="User not found") return delete_user(db, user_data)