46 lines
1.3 KiB
Python
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 |