diff --git a/app/controllers/calendarManager.py b/app/controllers/calendarManager.py index 634590e..7a23e0a 100644 --- a/app/controllers/calendarManager.py +++ b/app/controllers/calendarManager.py @@ -1,27 +1,26 @@ import logging + from fastapi import APIRouter, Depends, HTTPException + from app.services.auth import auth_is_admin from app.services.caldav import get_caldav_handler -from app.model.models import Card -from sqlmodel import Session, select -logger= logging.getLogger(__name__) +logger = logging.getLogger(__name__) calendar_router = APIRouter( prefix="/api/v1/calendar", tags=["Calendar diagnostics"], - dependencies=[Depends(auth_is_admin)] + dependencies=[Depends(auth_is_admin)], ) + @calendar_router.get("/isActive") def cal_is_active(): - if get_caldav_handler() is None: - return False - else: - return True + return get_caldav_handler() is not None + @calendar_router.get("/calGetActiveEvents") -def cal_get_active_events(db: Session = Depends(get_session)): +def cal_get_active_events(): handler = get_caldav_handler() if handler is None: raise HTTPException(503, "Caldav handler not initialized") @@ -29,7 +28,7 @@ def cal_get_active_events(db: Session = Depends(get_session)): @calendar_router.get("/calGetFutureEvents") -def cal_get_future_events(db: Session = Depends(get_session)): +def cal_get_future_events(): handler = get_caldav_handler() if handler is None: raise HTTPException(503, "Caldav handler not initialized") @@ -37,8 +36,8 @@ def cal_get_future_events(db: Session = Depends(get_session)): @calendar_router.get("/calGetActiveGroups") -def cal_get_active_groups(db: Session = Depends(get_session)): +def cal_get_active_groups(): handler = get_caldav_handler() if handler is None: raise HTTPException(503, "Caldav handler not initialized") - return handler.get_active_groups() \ No newline at end of file + return handler.get_active_groups() diff --git a/app/controllers/cardManager.py b/app/controllers/cardManager.py index d588ae0..4c20a87 100644 --- a/app/controllers/cardManager.py +++ b/app/controllers/cardManager.py @@ -1,9 +1,9 @@ import logging +from datetime import UTC, datetime from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.exc import NoResultFound from sqlmodel import Session, select -from datetime import datetime, UTC from app.model.models import Card, CardCreate, CardUpdate, GroupDB from app.services.auth import auth_is_admin @@ -28,7 +28,7 @@ def register_card(cardInput: CardCreate): name=cardInput.name, card_serial=uid, enabled=cardInput.enabled, - last_used=datetime.now(tz=UTC) + last_used=datetime.now(tz=UTC), ) return card @@ -119,10 +119,16 @@ def update_card( db_card.sqlmodel_update(card_data) return add_and_refresh(db, db_card) + @card_router.get("/inactive") -def inactive_card_search(enabled: bool = False, uses: bool = False, ended: bool = False, db: Session = Depends(get_session), admin: bool = Depends(auth_is_admin)): - results = [] +def inactive_card_search( + enabled: bool = False, + uses: bool = False, + ended: bool = False, + db: Session = Depends(get_session), + admin: bool = Depends(auth_is_admin), +): if not enabled and not uses and not ended: return {"message": "No results. Please activate at least one filter rule"} if enabled: - return {"message": "Results with disabled cards heres"} \ No newline at end of file + return {"message": "Results with disabled cards heres"} diff --git a/app/controllers/debugManager.py b/app/controllers/debugManager.py index 32d1dd5..e1037bb 100644 --- a/app/controllers/debugManager.py +++ b/app/controllers/debugManager.py @@ -6,7 +6,6 @@ from sqlmodel import Session, select from app.model.models import Card from app.services.auth import auth_is_admin -from app.services.caldav import get_caldav_handler from app.services.database import add_and_refresh, get_session logger = logging.getLogger(__name__) @@ -63,4 +62,4 @@ def list_all_cards(db: Session = Depends(get_session)): out = [] for i in cards: out.append({i.key: i.group.name}) - return out \ No newline at end of file + return out diff --git a/app/main.py b/app/main.py index db0f527..7802790 100644 --- a/app/main.py +++ b/app/main.py @@ -7,6 +7,7 @@ from fastapi.security import OAuth2PasswordBearer from app.controllers import ( aaManager, + calendarManager, cardManager, debugManager, doorManager, @@ -75,4 +76,5 @@ app.include_router(groupManager.group_router) app.include_router(cardManager.card_router) app.include_router(aaManager.aa_router) app.include_router(doorManager.door_router) +app.include_router(calendarManager.calendar_router) app.include_router(debugManager.debug_router) diff --git a/app/services/door.py b/app/services/door.py index d3b911b..b97d096 100644 --- a/app/services/door.py +++ b/app/services/door.py @@ -1,5 +1,5 @@ import logging -from datetime import datetime, UTC +from datetime import UTC, datetime from sqlalchemy import exc from sqlmodel import select @@ -98,12 +98,14 @@ def decrementOneshot(db: Session, oneshot: OneShotAccess): oneshot.sqlmodel_update(oneshot, update=data) add_and_refresh(db, oneshot) + def updateLastUsed(db: Session, card: Card): data = card.model_dump() - data["lastUsed"] = datetime.now(UTC) + data["last_used"] = datetime.now(UTC) card.sqlmodel_update(card, update=data) add_and_refresh(db, card) + def checkAccess(key: str, db: Session): try: card = db.exec(select(Card).where(Card.key == key)).one() diff --git a/test/conftest.py b/test/conftest.py index d2683df..3914856 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -217,7 +217,7 @@ def test_card(db_session, test_group): enabled=True, name="test_card", card_serial="00:00:00:00:00:00:00", - last_used=datetime.now() + last_used=datetime.now(), ) db_session.add(card) db_session.commit() diff --git a/test/test_services/test_door.py b/test/test_services/test_door.py index d810053..e353592 100644 --- a/test/test_services/test_door.py +++ b/test/test_services/test_door.py @@ -23,7 +23,7 @@ def test_check_access_with_valid_oneshot(db_session): enabled=True, name="test_card", card_serial="00:00:00:00:00:00:00", - last_used=datetime.datetime.now() + last_used=datetime.datetime.now(), ) db_session.add(card) @@ -62,7 +62,7 @@ def test_check_access_with_inactive_aa(db_session): enabled=True, name="test_card", card_serial="00:00:00:00:00:00:00", - last_used=datetime.datetime.now() + last_used=datetime.datetime.now(), ) db_session.add(card) @@ -92,7 +92,7 @@ def test_check_access_with_inactive_card(db_session): enabled=False, name="test_card", card_serial="00:00:00:00:00:00:00", - last_used=datetime.datetime.now() + last_used=datetime.datetime.now(), ) db_session.add(card) @@ -122,7 +122,7 @@ def test_regression_check_access_issue_28(db_session): enabled=True, name="test_card", card_serial="00:00:00:00:00:00:00", - last_used=datetime.datetime.now() + last_used=datetime.datetime.now(), ) db_session.add(card) @@ -167,7 +167,7 @@ def _create_card_with_oneshot(db_session, ends_at): enabled=True, name="test_card", card_serial="00:00:00:00:00:00:00", - last_used=datetime.datetime.now() + last_used=datetime.datetime.now(), ) db_session.add(card)