2024-10-04 15:36:34 +05:00

50 lines
1.6 KiB
Python

from typing import List
from fastapi import APIRouter, HTTPException, Depends
from sqlalchemy.orm import Session
from app.infrastructure.database.dependencies import get_db
from app.core.entities.user import UserEntity
from app.core.usecases.user_service import UsersService
router = APIRouter()
@router.get("/users", response_model=List[UserEntity])
def read_users(db: Session = Depends(get_db)):
service = UsersService(db)
return service.get_all_users()
@router.get("/users/{user_id}", response_model=UserEntity)
def read_user(user_id: int, db: Session = Depends(get_db)):
service = UsersService(db)
user = service.get_user_by_id(user_id)
if user is None:
raise HTTPException(status_code=404, detail="User not found")
return user
@router.post("/users", response_model=UserEntity)
def create_user(user: UserEntity, db: Session = Depends(get_db)):
service = UsersService(db)
return service.create_user(user)
@router.put("/users/{user_id}", response_model=UserEntity)
def update_user(user_id: int, user: UserEntity, db: Session = Depends(get_db)):
service = UsersService(db)
updated_user = service.update_user(user_id, user)
if updated_user is None:
raise HTTPException(status_code=404, detail="User not found")
return updated_user
@router.delete("/users/{user_id}", response_model=bool)
def delete_user(user_id: int, db: Session = Depends(get_db)):
service = UsersService(db)
success = service.delete_user(user_id)
if not success:
raise HTTPException(status_code=404, detail="User not found")
return success