Files
gatekeeper/app/controllers/userManager.py
ahtlon 22e57996c2 Finish sqlmodel migration
- merge card.py, user.py and dbmodels.py into models.py
- deduplicate
- change responsemodels in the manager functions
- correct inports
2026-04-23 22:41:48 +02:00

53 lines
1.8 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlmodel import Session
from typing import List
from ..model.models import UserResponse, UserCreate, UserDB
from ..services.database import engine
user_router = APIRouter(tags=["users"])
@user_router.post("/users/", response_model=UserResponse)
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[UserResponse])
def read_users():
with Session(engine) as db:
users = db.query(User).all()
return users
@user_router.get("/users/{user_id}", response_model=UserResponse)
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=UserResponse)
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"}