Files
OpenVPN-Monitoring-Simple/APP_PROFILER/routers/system.py

51 lines
1.5 KiB
Python
Raw Normal View History

2026-01-28 22:37:47 +03:00
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy.orm import Session
from database import get_db
from utils.auth import verify_token
from schemas import (
ConfigResponse, SystemSettings, PKISetting,
SystemSettingsUpdate, PKISettingUpdate
)
from services import config, pki
router = APIRouter(dependencies=[Depends(verify_token)])
@router.get("/config", response_model=ConfigResponse)
def get_config(
section: str = Query(None, enum=["server", "pki"]),
db: Session = Depends(get_db)
):
response = ConfigResponse()
if section is None or section == "server":
response.server = config.get_system_settings(db)
if section is None or section == "pki":
response.pki = config.get_pki_settings(db)
return response
@router.put("/config/server", response_model=SystemSettings)
def update_server_config(
settings: SystemSettingsUpdate,
db: Session = Depends(get_db)
):
return config.update_system_settings(db, settings)
@router.put("/config/pki", response_model=PKISetting)
def update_pki_config(
settings: PKISettingUpdate,
db: Session = Depends(get_db)
):
return config.update_pki_settings(db, settings)
@router.post("/system/init")
def init_system_pki(db: Session = Depends(get_db)):
try:
msg = pki.init_pki(db)
return {"message": msg}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@router.delete("/system/pki")
def clear_system_pki(db: Session = Depends(get_db)):
msg = pki.clear_pki(db)
return {"message": msg}