Детальная обработка ответов и ошибок для работы с подсетью
This commit is contained in:
parent
1b0d18b681
commit
ea56d17ea7
5 changed files with 86 additions and 502 deletions
|
|
@ -268,44 +268,94 @@ class SubnetService:
|
|||
logger.warning(f"Не удалось получить локальное устройство: {str(e)}")
|
||||
return None
|
||||
|
||||
def add_note(self, mac: str, note: str) -> bool:
|
||||
def add_note(self, mac: str, note: str) -> Tuple[bool, Optional[str]]:
|
||||
"""Добавляет заметку к устройству по MAC-адресу.
|
||||
|
||||
Args:
|
||||
mac (str): MAC-адрес устройства.
|
||||
note (str): Текст заметки.
|
||||
|
||||
Returns:
|
||||
Tuple[bool, Optional[str]]: Кортеж (успех, сообщение об ошибке).
|
||||
- Успех: (True, None).
|
||||
- Ошибка: (False, сообщение об ошибке).
|
||||
|
||||
Raises:
|
||||
Exception: Если произошла ошибка при сохранении.
|
||||
"""
|
||||
try:
|
||||
saved_devices = self.storage.load_devices()
|
||||
if mac not in saved_devices:
|
||||
logger.warning(f"Устройство с MAC {mac} не найдено")
|
||||
return False
|
||||
return False, f"Устройство с MAC {mac} не найдено"
|
||||
if saved_devices[mac].note is not None:
|
||||
logger.error(f"Заметка для устройства с MAC {mac} уже существует")
|
||||
return False, f"Заметка для устройства с MAC {mac} уже существует"
|
||||
saved_devices[mac].note = note
|
||||
self.storage.save_devices(list(saved_devices.values()))
|
||||
logger.info(f"Добавлена заметка '{note}' для устройства с MAC {mac}")
|
||||
return True
|
||||
return True, None
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при добавлении заметки для MAC {mac}: {str(e)}")
|
||||
return False
|
||||
return False, f"Внутренняя ошибка сервера: {str(e)}"
|
||||
|
||||
def update_note(self, mac: str, note: str) -> bool:
|
||||
def update_note(self, mac: str, note: str) -> Tuple[bool, Optional[str]]:
|
||||
"""Обновляет заметку устройства по MAC-адресу.
|
||||
|
||||
Args:
|
||||
mac (str): MAC-адрес устройства.
|
||||
note (str): Новый текст заметки.
|
||||
|
||||
Returns:
|
||||
Tuple[bool, Optional[str]]: Кортеж (успех, сообщение об ошибке).
|
||||
- Успех: (True, None).
|
||||
- Ошибка: (False, сообщение об ошибке).
|
||||
|
||||
Raises:
|
||||
Exception: Если произошла ошибка при сохранении.
|
||||
"""
|
||||
try:
|
||||
saved_devices = self.storage.load_devices()
|
||||
if mac not in saved_devices:
|
||||
logger.warning(f"Устройство с MAC {mac} не найдено")
|
||||
return False
|
||||
return False, f"Устройство с MAC {mac} не найдено"
|
||||
if saved_devices[mac].note is None:
|
||||
logger.error(f"Заметка для устройства с MAC {mac} не существует")
|
||||
return False, f"Заметка для устройства с MAC {mac} не существует"
|
||||
saved_devices[mac].note = note
|
||||
self.storage.save_devices(list(saved_devices.values()))
|
||||
logger.info(f"Обновлена заметка '{note}' для устройства с MAC {mac}")
|
||||
return True
|
||||
return True, None
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при обновлении заметки для MAC {mac}: {str(e)}")
|
||||
return False
|
||||
return False, f"Внутренняя ошибка сервера: {str(e)}"
|
||||
|
||||
def delete_note(self, mac: str) -> bool:
|
||||
def delete_note(self, mac: str) -> Tuple[bool, Optional[str]]:
|
||||
"""Удаляет заметку устройства по MAC-адресу.
|
||||
|
||||
Args:
|
||||
mac (str): MAC-адрес устройства.
|
||||
|
||||
Returns:
|
||||
Tuple[bool, Optional[str]]: Кортеж (успех, сообщение об ошибке).
|
||||
- Успех: (True, None).
|
||||
- Ошибка: (False, сообщение об ошибке).
|
||||
|
||||
Raises:
|
||||
Exception: Если произошла ошибка при сохранении.
|
||||
"""
|
||||
try:
|
||||
saved_devices = self.storage.load_devices()
|
||||
if mac not in saved_devices:
|
||||
logger.warning(f"Устройство с MAC {mac} не найдено")
|
||||
return False
|
||||
return False, f"Устройство с MAC {mac} не найдено"
|
||||
if saved_devices[mac].note is None:
|
||||
logger.error(f"Заметка для устройства с MAC {mac} не существует")
|
||||
return False, f"Заметка для устройства с MAC {mac} не существует"
|
||||
saved_devices[mac].note = None
|
||||
self.storage.save_devices(list(saved_devices.values()))
|
||||
logger.info(f"Удалена заметка для устройства с MAC {mac}")
|
||||
return True
|
||||
return True, None
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при удалении заметки для MAC {mac}: {str(e)}")
|
||||
return False
|
||||
return False, f"Внутренняя ошибка сервера: {str(e)}"
|
||||
Loading…
Add table
Add a link
Reference in a new issue