68 lines
No EOL
2.6 KiB
Python
68 lines
No EOL
2.6 KiB
Python
import json
|
||
import logging
|
||
|
||
logging.basicConfig(level=logging.INFO)
|
||
logger = logging.getLogger(__name__)
|
||
|
||
class SettingsService:
|
||
"""Сервис для управления настройками и очистки данных сети."""
|
||
|
||
def __init__(self):
|
||
self.subnet_file = "storage/devices/devices.json"
|
||
self.wifi_file = "storage/wifi/wifi.json"
|
||
|
||
def clear_subnet(self) -> bool:
|
||
"""Очищает данные узлов подсети в файле devices.json.
|
||
|
||
Returns:
|
||
bool: True, если очистка успешна.
|
||
|
||
Raises:
|
||
Exception: Если произошла ошибка при записи в файл.
|
||
"""
|
||
try:
|
||
with open(self.subnet_file, "w") as f:
|
||
json.dump([], f)
|
||
logger.info("Данные узлов подсети успешно очищены")
|
||
return True
|
||
except Exception as e:
|
||
logger.error(f"Ошибка очистки узлов подсети: {str(e)}")
|
||
raise
|
||
|
||
def clear_wifi(self) -> bool:
|
||
"""Очищает данные точек доступа Wi-Fi в файле wifi.json.
|
||
|
||
Returns:
|
||
bool: True, если очистка успешна.
|
||
|
||
Raises:
|
||
Exception: Если произошла ошибка при записи в файл.
|
||
"""
|
||
try:
|
||
with open(self.wifi_file, "w") as f:
|
||
json.dump([], f)
|
||
logger.info("Данные точек доступа Wi-Fi успешно очищены")
|
||
return True
|
||
except Exception as e:
|
||
logger.error(f"Ошибка очистки точек доступа Wi-Fi: {str(e)}")
|
||
raise
|
||
|
||
def clear_all_data(self) -> bool:
|
||
"""Очищает данные узлов подсети и точек доступа Wi-Fi в обоих файлах.
|
||
|
||
Returns:
|
||
bool: True, если очистка успешна.
|
||
|
||
Raises:
|
||
Exception: Если произошла ошибка при записи в один из файлов.
|
||
"""
|
||
try:
|
||
with open(self.subnet_file, "w") as f:
|
||
json.dump([], f)
|
||
with open(self.wifi_file, "w") as f:
|
||
json.dump([], f)
|
||
logger.info("Все сетевые данные успешно очищены")
|
||
return True
|
||
except Exception as e:
|
||
logger.error(f"Ошибка очистки всех сетевых данных: {str(e)}")
|
||
raise |