from typing import List from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from app.api.v1.models.user import User from app.api.v1.schemas.user import UserCreate, UserResponse from app.api.core.dependencies.dependencies import get_db router = APIRouter() @router.get("/users", response_model=List[UserResponse]) def read_users(db: Session = Depends(get_db)): users = db.query(User).all() return users @router.post("/users", response_model=UserResponse) def create_user(user: UserCreate, db: Session = Depends(get_db)): db_user = User(**user.dict()) db.add(db_user) db.commit() db.refresh(db_user) return db_user @router.get("/users/{user_id}", response_model=UserResponse) def read_user(user_id: int, db: Session = Depends(get_db)): db_user = db.query(User).filter(User.id == user_id).first() if not db_user: raise HTTPException(status_code=404, detail="User not found") return db_user