gonets/SRV/api/v1/settings.py

62 lines
No EOL
2.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from fastapi import APIRouter, HTTPException
from services.settings_service import SettingsService
router = APIRouter()
settings_service = SettingsService()
@router.post("/clear_subnet")
def clear_subnet():
"""Очищает данные узлов подсети, сохранённые в devices.json.
Удаляет все записи об узлах подсети, оставляя файл пустым.
Returns:
dict: Словарь с сообщением об успешной очистке.
Raises:
HTTPException: Если произошла ошибка очистки (status_code=500).
"""
try:
success = settings_service.clear_subnet()
if success:
return {"message": "Данные узлов подсети успешно очищены"}
except Exception as e:
raise HTTPException(status_code=500, detail=f"Ошибка очистки: {str(e)}")
@router.post("/clear_wifi")
def clear_wifi():
"""Очищает данные точек доступа Wi-Fi, сохранённые в wifi.json.
Удаляет все записи о точках доступа, оставляя файл пустым.
Returns:
dict: Словарь с сообщением об успешной очистке.
Raises:
HTTPException: Если произошла ошибка очистки (status_code=500).
"""
try:
success = settings_service.clear_wifi()
if success:
return {"message": "Данные точек доступа Wi-Fi успешно очищены"}
except Exception as e:
raise HTTPException(status_code=500, detail=f"Ошибка очистки: {str(e)}")
@router.post("/clear_all_data")
def clear_all_data():
"""Очищает данные узлов подсети и точек доступа Wi-Fi в обоих файлах.
Удаляет все записи из devices.json и wifi.json.
Returns:
dict: Словарь с сообщением об успешной очистке.
Raises:
HTTPException: Если произошла ошибка очистки (status_code=500).
"""
try:
success = settings_service.clear_all_data()
if success:
return {"message": "Все сетевые данные успешно очищены"}
except Exception as e:
raise HTTPException(status_code=500, detail=f"Ошибка очистки: {str(e)}")