Files
gatekeeper/app/controllers/userManager.py
2026-04-18 23:40:44 +02:00

54 lines
1.8 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlmodel import Session
from typing import List
from ..model.dbModels import User
from ..model.user import UserCreate, User as UserSchema
from ..services.database import engine
user_router = APIRouter(tags=["users"])
@user_router.post("/users/", response_model=UserSchema)
def create_user(user: UserCreate):
with Session(engine) as db:
db_user = User(**user.dict())
db.add(db_user)
db.commit()
db.refresh(db_user)
return db_user
@user_router.get("/users/", response_model=List[UserSchema])
def read_users():
with Session(engine) as db:
users = db.query(User).all()
return users
@user_router.get("/users/{user_id}", response_model=UserSchema)
def read_user(user_id: int):
with Session(engine) as db:
db_user = db.query(User).filter(User.id == user_id).first()
if db_user is None:
raise HTTPException(status_code=404, detail="User not found")
return db_user
@user_router.put("/users/{user_id}", response_model=UserSchema)
def update_user(user_id: int, user: UserCreate):
with Session(engine) as db:
db_user = db.query(User).filter(User.id == user_id).first()
if db_user is None:
raise HTTPException(status_code=404, detail="User not found")
for key, value in user.dict().items():
setattr(db_user, key, value)
db.commit()
db.refresh(db_user)
return db_user
@user_router.delete("/users/{user_id}")
def delete_user(user_id: int):
with Session(engine) as db:
db_user = db.query(User).filter(User.id == user_id).first()
if db_user is None:
raise HTTPException(status_code=404, detail="User not found")
db.delete(db_user)
db.commit()
return {"message": "User deleted successfully"}