from fastapi import APIRouter, Depends, HTTPException from sqlmodel import Session from typing import List from ..model.models import Card, AccessAuthorizationDB, AccessAuthorizationCreate, AccessAuthorizationResponse from ..services.database import engine import uuid as gen_uuid card_router = APIRouter(prefix="/cards", tags=["Card"]) def get_session(): with Session(engine) as db: yield db def register_card(group_id: int): uuid = str(gen_uuid.uuid4()) #hier code für mifare registrierung card = Card(group_id=group_id, uuid=uuid) return card def add_and_refresh(db: Session, obj): db.add(obj) db.commit() db.refresh(obj) return obj @card_router.post("/{group_id}", response_model=Card) def add_card(*, db: Session = Depends(get_session), group_id: int): card = register_card(group_id) return add_and_refresh(db, card) @card_router.delete("/{card_id}") def del_card(*, db: Session = Depends(get_session), card_id: int): card = db.get(Card, card_id) if card is None: raise HTTPException(status_code=404, detail="Card not found") db.delete(card) db.commit() return {"message": "Card deleted successfully"} ##TBH not a big fan of having creation using group_id but deletion using card_id #TODO: # -Split Authorisations + Cards # -Deactivation # -Deleting