switch orm to sqlmodel

This commit is contained in:
2026-04-18 23:40:44 +02:00
parent 000922a7a6
commit 287235243a
6 changed files with 129 additions and 113 deletions

View File

@@ -1,56 +1,54 @@
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
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 SessionLocal, engine
from ..services.database import engine
user_router = APIRouter(tags=["users"])
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@user_router.post("/users/", response_model=UserSchema)
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
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(db: Session = Depends(get_db)):
users = db.query(User).all()
return users
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, db: Session = Depends(get_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
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, db: Session = Depends(get_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
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, db: Session = Depends(get_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"}
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"}