diff --git a/app/controllers/cardManager.py b/app/controllers/cardManager.py index 6b1c6f5..10393c9 100644 --- a/app/controllers/cardManager.py +++ b/app/controllers/cardManager.py @@ -5,7 +5,7 @@ from sqlmodel import Session, select from typing import List from sqlalchemy.exc import NoResultFound -from ..model.models import Card +from ..model.models import Card, CardCreate from ..services.database import engine, get_session, add_and_refresh from ..services.auth import auth_is_admin import uuid as gen_uuid @@ -13,17 +13,23 @@ from app.services.scanner import WriteNewCard, DeleteCard card_router = APIRouter(prefix="/api/v1/cards", tags=["Card"]) -def register_card(group_id: int): - key = WriteNewCard() +def register_card(cardInput: CardCreate): + key, uid = WriteNewCard() if key == None: logger.info("No card registered. Check logs!") raise HTTPException(status.HTTP_417_EXPECTATION_FAILED, detail="No card registered. Check logs!") - card = Card(group_id=group_id, key=key) + card = Card( + group_id=cardInput.group_id, + key=key, + name=cardInput.name, + card_serial=uid, + enabled=cardInput.enabled + ) return card -@card_router.post("/{group_id}", response_model=Card) -def add_card(*, db: Session = Depends(get_session), group_id: int, admin: bool = Depends(auth_is_admin)): - card = register_card(group_id) +@card_router.post("/", response_model=Card) +def add_card(cardInput: CardCreate, db: Session = Depends(get_session), admin: bool = Depends(auth_is_admin)): + card = register_card(cardInput) return add_and_refresh(db, card) @card_router.delete("/") diff --git a/app/services/scanner.py b/app/services/scanner.py index b22da7c..56bbf49 100644 --- a/app/services/scanner.py +++ b/app/services/scanner.py @@ -233,7 +233,7 @@ def WriteNewCard(): assert rdata == get_list(key) logger.debug(" - Data written successfully.") scannerThread.start() - return key + return key, to_hex_string(data=uid, separator=":") except Exception as e: logger.error(f"Error in write function: {e}", exc_info=True)