Initial curated Unraid-AppOps-Gateway source from 3bd6f6fee310125bfbb4d4650389a817f498724d
This commit is contained in:
commit
1dfbca08a1
528 files changed
+131054
No files matched your search
@@ -0,0 +1,108 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
|
||||
from ..connectors.nginx_proxy_manager import NginxProxyManagerConnector
|
||||
from .connector_runtime import load_connector_runtime
|
||||
|
||||
router = APIRouter(prefix='/api/apps/nginx-proxy-manager', dependencies=[Depends(load_connector_runtime)])
|
||||
alias_router = APIRouter(prefix='/api/apps/npm', dependencies=[Depends(load_connector_runtime)])
|
||||
|
||||
|
||||
def _shape(payload: dict[str, Any]) -> dict[str, Any]:
|
||||
data = payload.get('data')
|
||||
if not isinstance(data, dict):
|
||||
data = {key: value for key, value in payload.items() if key not in {'success', 'status', 'message'}}
|
||||
return {
|
||||
**payload,
|
||||
'success': bool(payload.get('success')),
|
||||
'status': str(payload.get('status', 'ok')),
|
||||
'message': str(payload.get('message', 'ok')),
|
||||
'data': data,
|
||||
}
|
||||
|
||||
|
||||
def _connector() -> NginxProxyManagerConnector:
|
||||
return NginxProxyManagerConnector()
|
||||
|
||||
|
||||
@router.get('/health')
|
||||
def health():
|
||||
return _shape(_connector().health())
|
||||
|
||||
|
||||
@router.get('/proxy-hosts')
|
||||
def proxy_hosts():
|
||||
return _shape(_connector().proxy_hosts())
|
||||
|
||||
|
||||
@router.get('/certificates')
|
||||
def certificates():
|
||||
return _shape(_connector().certificates())
|
||||
|
||||
|
||||
@router.get('/certificates/expiring')
|
||||
def expiring_certificates(days: int = 30):
|
||||
return _shape(_connector().expiring_certificates(days))
|
||||
|
||||
|
||||
@router.get('/access-lists')
|
||||
def access_lists():
|
||||
return _shape(_connector().access_lists())
|
||||
|
||||
|
||||
@router.get('/exposure-summary')
|
||||
def exposure_summary():
|
||||
return _shape(_connector().exposure_summary())
|
||||
|
||||
|
||||
@router.get('/host-reachability')
|
||||
def host_reachability():
|
||||
return _shape(_connector().host_reachability())
|
||||
|
||||
|
||||
@router.get('/security-warnings')
|
||||
def security_warnings():
|
||||
return _shape(_connector().security_warnings())
|
||||
|
||||
|
||||
@alias_router.get('/health')
|
||||
def alias_health():
|
||||
return health()
|
||||
|
||||
|
||||
@alias_router.get('/proxy-hosts')
|
||||
def alias_proxy_hosts():
|
||||
return proxy_hosts()
|
||||
|
||||
|
||||
@alias_router.get('/certificates')
|
||||
def alias_certificates():
|
||||
return certificates()
|
||||
|
||||
|
||||
@alias_router.get('/certificates/expiring')
|
||||
def alias_expiring_certificates(days: int = 30):
|
||||
return expiring_certificates(days)
|
||||
|
||||
|
||||
@alias_router.get('/access-lists')
|
||||
def alias_access_lists():
|
||||
return access_lists()
|
||||
|
||||
|
||||
@alias_router.get('/exposure-summary')
|
||||
def alias_exposure_summary():
|
||||
return exposure_summary()
|
||||
|
||||
|
||||
@alias_router.get('/host-reachability')
|
||||
def alias_host_reachability():
|
||||
return host_reachability()
|
||||
|
||||
|
||||
@alias_router.get('/security-warnings')
|
||||
def alias_security_warnings():
|
||||
return security_warnings()
|
||||
Reference in new issue
Block a user