37 lines
1.4 KiB
Python

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)