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,57 @@
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from sqlalchemy import select
from sqlmodel import Session
from typing import List
from ..model.dbModels import Card, AccessAuthorization
from ..model.card import CardBase, AccessAuthorizationCreate, AccessAuthorization as AccessSchema
from ..services.database import SessionLocal, engine
from ..services.database import engine
import uuid as gen_uuid
card_router = APIRouter(tags=["Card"])
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
def register_card(db: Session, name: str):
def register_card(name: str):
uuid = str(gen_uuid.uuid4()) #hier code für mifare registrierung
card = Card(user_id=name, uuid=uuid)
return card
@card_router.get("/cards", response_model=List[AccessSchema])
def get_accesses(db: Session = Depends(get_db)):
accesses = db.query(AccessAuthorization).all()
if accesses is None:
raise HTTPException(status_code=404, detail="N/A")
return accesses
def get_accesses():
with Session(engine) as db:
accesses = db.query(AccessAuthorization).all()
if accesses is None:
raise HTTPException(status_code=404, detail="N/A")
return accesses
@card_router.post("/cards", response_model=AccessSchema)
def create_access(access: AccessAuthorizationCreate, db: Session = Depends(get_db)):
db_access = AccessAuthorization(**access.dict())
card = register_card(db, access.name)
db.add(db_access)
db.add(card)
db.commit()
db.refresh(db_access)
return db_access
def create_access(access: AccessAuthorizationCreate):
with Session(engine) as db:
db_access = AccessAuthorization(**access.dict())
card = register_card(access.name)
db.add(db_access)
db.add(card)
db.commit()
db.refresh(db_access)
return db_access
@card_router.get("/cards/{auth_name}", response_model=List[CardBase])
def get_cards(auth_name: str, db: Session = Depends(get_db)):
stmt = select(AccessAuthorization).where(AccessAuthorization.name == auth_name)
access_auth = db.execute(stmt).scalar_one_or_none()
if access_auth is None:
raise HTTPException(status_code=404, detail="Not found!")
return access_auth.card_id
def get_cards(auth_name: str):
with Session(engine) as db:
stmt = select(AccessAuthorization).where(AccessAuthorization.name == auth_name)
access_auth = db.execute(stmt).scalar_one_or_none()
if access_auth is None:
raise HTTPException(status_code=404, detail="Not found!")
return access_auth.card_id
@card_router.post("/cards/{auth_name}", response_model=CardBase)
def add_card(auth_name: str, db: Session = Depends(get_db)):
card = register_card(db, auth_name)
db.add(card)
db.commit()
db.refresh(card)
return card
def add_card(auth_name: str):
with Session(engine) as db:
card = register_card(auth_name)
db.add(card)
db.commit()
db.refresh(card)
return card
#TODO:
# -Split Authorisations + Cards
# -Deactivation
# -Deleting