Files
gatekeeper/app/controllers/cardManager.py

39 lines
1.3 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlmodel import Session, select
from typing import List
from ..model.models import Card
from ..services.database import engine, get_session, add_and_refresh
import uuid as gen_uuid
card_router = APIRouter(prefix="/cards", tags=["Card"])
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
@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
@card_router.get("/{group_id}", response_model=List[Card])
def get_cards(*, db: Session = Depends(get_session), group_id: int):
cards = db.exec(select(Card).where(Card.group_id == group_id)).all()
return cards
#TODO:
# -Split Authorisations + Cards
# -Deactivation
# -Deleting