|
|
@@ -6,15 +6,11 @@ from schemas.reslevis import ( |
|
|
) |
|
|
) |
|
|
from logica_reslevis.gateway import GatewayJsonRepository |
|
|
from logica_reslevis.gateway import GatewayJsonRepository |
|
|
|
|
|
|
|
|
# importa le dipendenze di sicurezza |
|
|
|
|
|
from security import get_current_user, require_roles |
|
|
|
|
|
|
|
|
from security import get_current_user |
|
|
|
|
|
|
|
|
gateway_repo = GatewayJsonRepository() |
|
|
gateway_repo = GatewayJsonRepository() |
|
|
router = APIRouter() |
|
|
router = APIRouter() |
|
|
|
|
|
|
|
|
# ----------------------- |
|
|
|
|
|
# Endpoints pubblici (se vuoi che restino pubblici, niente Depends) |
|
|
|
|
|
# ----------------------- |
|
|
|
|
|
@router.get("/getBuildings", response_model=List[BuildingItem], tags=["Reslevis"]) |
|
|
@router.get("/getBuildings", response_model=List[BuildingItem], tags=["Reslevis"]) |
|
|
def getBuildings(): |
|
|
def getBuildings(): |
|
|
return [] |
|
|
return [] |
|
|
@@ -27,9 +23,6 @@ def getPlans(): |
|
|
def getZones(): |
|
|
def getZones(): |
|
|
return [] |
|
|
return [] |
|
|
|
|
|
|
|
|
# ----------------------- |
|
|
|
|
|
# Endpoints protetti: richiedono almeno un Bearer token valido |
|
|
|
|
|
# ----------------------- |
|
|
|
|
|
@router.get("/getGateways", response_model=List[GatewayItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)]) |
|
|
@router.get("/getGateways", response_model=List[GatewayItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)]) |
|
|
def getGateways(): |
|
|
def getGateways(): |
|
|
return gateway_repo.list() |
|
|
return gateway_repo.list() |
|
|
@@ -54,18 +47,10 @@ def getAlarms(): |
|
|
def getTracks(): |
|
|
def getTracks(): |
|
|
return [] |
|
|
return [] |
|
|
|
|
|
|
|
|
# ----------------------- |
|
|
|
|
|
# Operazioni di scrittura su Gateway: |
|
|
|
|
|
# - Token valido |
|
|
|
|
|
# - Ruolo richiesto (esempio: "reslevis:write") |
|
|
|
|
|
# Cambia il nome ruolo per allinearlo a come lo hai definito in Keycloak |
|
|
|
|
|
# ----------------------- |
|
|
|
|
|
write_role = "reslevis:write" # esempio; usa il tuo realm/client role |
|
|
|
|
|
|
|
|
|
|
|
@router.post( |
|
|
@router.post( |
|
|
"/postGateway", |
|
|
"/postGateway", |
|
|
tags=["Reslevis"], |
|
|
tags=["Reslevis"], |
|
|
dependencies=[Depends(require_roles(write_role))] |
|
|
|
|
|
|
|
|
dependencies=[Depends(get_current_user)] |
|
|
) |
|
|
) |
|
|
def postGateway(item: GatewayItem): |
|
|
def postGateway(item: GatewayItem): |
|
|
try: |
|
|
try: |
|
|
@@ -79,7 +64,7 @@ def postGateway(item: GatewayItem): |
|
|
@router.put( |
|
|
@router.put( |
|
|
"/updateGateway", |
|
|
"/updateGateway", |
|
|
tags=["Reslevis"], |
|
|
tags=["Reslevis"], |
|
|
dependencies=[Depends(require_roles(write_role))] |
|
|
|
|
|
|
|
|
dependencies=[Depends(get_current_user)] |
|
|
) |
|
|
) |
|
|
def updateGateway(item: GatewayItem): |
|
|
def updateGateway(item: GatewayItem): |
|
|
try: |
|
|
try: |
|
|
@@ -96,7 +81,7 @@ def updateGateway(item: GatewayItem): |
|
|
@router.delete( |
|
|
@router.delete( |
|
|
"/removeGateway/{gateway_id}", |
|
|
"/removeGateway/{gateway_id}", |
|
|
tags=["Reslevis"], |
|
|
tags=["Reslevis"], |
|
|
dependencies=[Depends(require_roles(write_role))] |
|
|
|
|
|
|
|
|
dependencies=[Depends(get_current_user)] |
|
|
) |
|
|
) |
|
|
def removeGateway(gateway_id: str): |
|
|
def removeGateway(gateway_id: str): |
|
|
try: |
|
|
try: |
|
|
@@ -107,35 +92,35 @@ def removeGateway(gateway_id: str): |
|
|
except Exception as e: |
|
|
except Exception as e: |
|
|
raise HTTPException(status_code=500, detail=f"Errore interno: {e}") |
|
|
raise HTTPException(status_code=500, detail=f"Errore interno: {e}") |
|
|
|
|
|
|
|
|
@router.post("/postBuilding", tags=["Reslevis"], dependencies=[Depends(require_roles(write_role))]) |
|
|
|
|
|
|
|
|
@router.post("/postBuilding", tags=["Reslevis"], dependencies=[Depends(get_current_user)]) |
|
|
def postBuilding(item: BuildingItem): |
|
|
def postBuilding(item: BuildingItem): |
|
|
return {"message": "OK"} |
|
|
return {"message": "OK"} |
|
|
|
|
|
|
|
|
@router.post("/postPlan", tags=["Reslevis"], dependencies=[Depends(require_roles(write_role))]) |
|
|
|
|
|
|
|
|
@router.post("/postPlan", tags=["Reslevis"], dependencies=[Depends(get_current_user)]) |
|
|
def postPlan(item: PlanItem): |
|
|
def postPlan(item: PlanItem): |
|
|
return {"message": "OK"} |
|
|
return {"message": "OK"} |
|
|
|
|
|
|
|
|
@router.post("/postZone", tags=["Reslevis"], dependencies=[Depends(require_roles(write_role))]) |
|
|
|
|
|
|
|
|
@router.post("/postZone", tags=["Reslevis"], dependencies=[Depends(get_current_user)]) |
|
|
def postZone(item: ZoneItem): |
|
|
def postZone(item: ZoneItem): |
|
|
return {"message": "OK"} |
|
|
return {"message": "OK"} |
|
|
|
|
|
|
|
|
@router.post("/postTracker", tags=["Reslevis"], dependencies=[Depends(require_roles(write_role))]) |
|
|
|
|
|
|
|
|
@router.post("/postTracker", tags=["Reslevis"], dependencies=[Depends(get_current_user)]) |
|
|
def postTracker(item: TrackerItem): |
|
|
def postTracker(item: TrackerItem): |
|
|
return {"message": "OK"} |
|
|
return {"message": "OK"} |
|
|
|
|
|
|
|
|
@router.post("/postOperator", tags=["Reslevis"], dependencies=[Depends(require_roles(write_role))]) |
|
|
|
|
|
|
|
|
@router.post("/postOperator", tags=["Reslevis"], dependencies=[Depends(get_current_user)]) |
|
|
def postOperator(item: OperatorItem): |
|
|
def postOperator(item: OperatorItem): |
|
|
return {"message": "OK"} |
|
|
return {"message": "OK"} |
|
|
|
|
|
|
|
|
@router.post("/postSubject", tags=["Reslevis"], dependencies=[Depends(require_roles(write_role))]) |
|
|
|
|
|
|
|
|
@router.post("/postSubject", tags=["Reslevis"], dependencies=[Depends(get_current_user)]) |
|
|
def postSubject(item: SubjectItem): |
|
|
def postSubject(item: SubjectItem): |
|
|
return {"message": "OK"} |
|
|
return {"message": "OK"} |
|
|
|
|
|
|
|
|
@router.post("/postAlarm", tags=["Reslevis"], dependencies=[Depends(require_roles(write_role))]) |
|
|
|
|
|
|
|
|
@router.post("/postAlarm", tags=["Reslevis"], dependencies=[Depends(get_current_user)]) |
|
|
def postAlarm(item: AlarmItem): |
|
|
def postAlarm(item: AlarmItem): |
|
|
return {"message": "OK"} |
|
|
return {"message": "OK"} |
|
|
|
|
|
|
|
|
@router.post("/postTrack", tags=["Reslevis"], dependencies=[Depends(require_roles(write_role))]) |
|
|
|
|
|
|
|
|
@router.post("/postTrack", tags=["Reslevis"], dependencies=[Depends(get_current_user)]) |
|
|
def postTrack(item: TrackItem): |
|
|
def postTrack(item: TrackItem): |
|
|
return {"message": "OK"} |
|
|
return {"message": "OK"} |
|
|
|
|
|
|