diff --git a/app/controllers/debugManager.py b/app/controllers/debugManager.py new file mode 100644 index 0000000..96bc546 --- /dev/null +++ b/app/controllers/debugManager.py @@ -0,0 +1,37 @@ +import logging +logger = logging.getLogger(__name__) +from fastapi import APIRouter, Depends, HTTPException +from app.services.auth import auth_is_admin +from sqlmodel import Session, select +from app.model.models import * +from app.services.database import get_session, add_and_refresh + +debug_router = APIRouter( + prefix="/debug", + tags=["Debug items - maybe dont show this in UI"], + dependencies=[Depends(auth_is_admin)], +) + +@debug_router.get("/addcard/{groupid}/{card_key}") +def add_card_manually(groupid: int, card_key: str, db: Session=Depends(get_session)): + """Add cards manually (you also have to delete them manually)""" + logger.critical(f"Manual db change: adding a card with key: {card_key} to group: {groupid}") + card = Card(group_id=groupid, uuid=card_key) + add_and_refresh(db, card) + return card + +@debug_router.get("/rmcard/{card_key}") +def remove_card_manually(card_key: str, db: Session = Depends(get_session)): + logger.critical(f"Manual db change: removing a card with key: {card_key}") + card = db.exec(select(Card).where(Card.uuid == card_key)).one() + add_and_refresh(db, card) + +@debug_router.put("/getcards") +def list_all_cards(db: Session = Depends(get_session)): + logger.info(f"Debug Setting: Getting cards.") + cards = db.exec(select(Card)).all() + print(cards) + out = [] + for i in cards: + out.append({i.uuid: i.group.name}) + return out \ No newline at end of file diff --git a/app/main.py b/app/main.py index f297d67..a93f0d6 100644 --- a/app/main.py +++ b/app/main.py @@ -6,7 +6,7 @@ from fastapi.security import OAuth2PasswordBearer from contextlib import asynccontextmanager from dotenv import load_dotenv -from .controllers import userManager, cardManager, groupManager, aaManager, doorManager +from .controllers import userManager, cardManager, groupManager, aaManager, doorManager, debugManager from .services.database import create_db_and_tables, get_db_session from .services.auth import token_router, create_first_user from app.services.scanner import BackgroundScanner @@ -43,4 +43,5 @@ app.include_router(userManager.user_router) app.include_router(groupManager.group_router) app.include_router(cardManager.card_router) app.include_router(aaManager.aa_router) -app.include_router(doorManager.door_router) \ No newline at end of file +app.include_router(doorManager.door_router) +app.include_router(debugManager.debug_router) \ No newline at end of file