Files
gatekeeper/app/controllers/cardManager.py
ahtlon f96894db8c Add groupManager;
reduce cardmanager to creating and deleting for now;
fix typo
2026-04-24 16:24:37 +02:00

46 lines
1.3 KiB
Python

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