From fe91adad08bd615e4b5232fcced41aa807e3159d Mon Sep 17 00:00:00 2001 From: Ahtlon Date: Tue, 19 May 2026 19:57:33 +0200 Subject: [PATCH] Add doorrouter --- app/controllers/doorManager.py | 16 ++++++++++++++++ app/main.py | 5 +++-- app/services/door.py | 18 ++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 app/controllers/doorManager.py create mode 100644 app/services/door.py diff --git a/app/controllers/doorManager.py b/app/controllers/doorManager.py new file mode 100644 index 0000000..f39f116 --- /dev/null +++ b/app/controllers/doorManager.py @@ -0,0 +1,16 @@ +from fastapi import APIRouter, Depends, HTTPException +from sqlmodel import Session + +from app.services.database import get_session +from app.services.auth import auth_is_admin +import app.services.door as doorService + +door_router = APIRouter(prefix="/door",tags=["Door"]) + +@door_router.put("/open") +def open_door(db: Session = Depends(get_session), admin: bool = Depends(auth_is_admin)): + doorService.opendoor() + +@door_router.put("/close") +def open_door(db: Session = Depends(get_session), admin: bool = Depends(auth_is_admin)): + doorService.closedoor() \ No newline at end of file diff --git a/app/main.py b/app/main.py index 3d46e18..319afbe 100644 --- a/app/main.py +++ b/app/main.py @@ -1,7 +1,7 @@ from fastapi import FastAPI from fastapi.security import OAuth2PasswordBearer from contextlib import asynccontextmanager -from .controllers import userManager, cardManager, groupManager, aaManager +from .controllers import userManager, cardManager, groupManager, aaManager, doorManager from .services.database import create_db_and_tables from .services.auth import token_router, create_first_user @@ -22,4 +22,5 @@ app.include_router(token_router) app.include_router(userManager.user_router) app.include_router(groupManager.group_router) app.include_router(cardManager.card_router) -app.include_router(aaManager.aa_router) \ No newline at end of file +app.include_router(aaManager.aa_router) +app.include_router(doorManager.door_router) \ No newline at end of file diff --git a/app/services/door.py b/app/services/door.py new file mode 100644 index 0000000..06b065e --- /dev/null +++ b/app/services/door.py @@ -0,0 +1,18 @@ + +import paho.mqtt.client as mqttClient + +doorIsOpen = True +client = mqttClient.Client(client_id="", userdata=None, protocol=mqttClient.MQTTv5) +client.tls_set(tls_version=mqttClient.ssl.PROTOCOL_TLS) +client.username_pw_set("username", "passwort") +#client.connect("host", port=8883) + +def opendoor(): + doorIsOpen = True + publish.single(topic="/lock/action", payload="unlock") + pass + +def closedoor(): + doorIsOpen = False + pass +