Rename directories
This commit is contained in:
parent
c55acba709
commit
ca047c4248
95 changed files with 77 additions and 77 deletions
90
Documentation/Tech-docs/api/endpoints/auth.md
Normal file
90
Documentation/Tech-docs/api/endpoints/auth.md
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
# api.v1.auth
|
||||
|
||||
### *async* api.v1.auth.check_users_file(translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Проверяет, существует ли файл users.json и содержит ли он пользователей.
|
||||
|
||||
Возвращает информацию о состоянии файла и наличии пользователей.
|
||||
|
||||
* **Returns:**
|
||||
Словарь с ключами:
|
||||
: - ”exists” (bool): Существует ли файл.
|
||||
- ”has_users” (bool): Содержит ли файл пользователей.
|
||||
- ”message” (str): Сообщение с описанием результата.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если произошла ошибка при проверке файла (status_code=500).
|
||||
|
||||
### *async* api.v1.auth.get_current_user(request: Request, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Возвращает данные текущего пользователя и токен.
|
||||
|
||||
Проверяет активную сессию по client_id и возвращает информацию о пользователе
|
||||
и токен для дальнейшего использования.
|
||||
|
||||
* **Parameters:**
|
||||
* **request** (*Request*) – Объект запроса для получения client_id (IP-адрес клиента).
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с ключами “user” (UserResponse), “access_token” (str) и
|
||||
: ”token_type” (str, всегда “bearer”).
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если сессия не найдена или истекла (status_code=401) или
|
||||
произошла внутренняя ошибка (status_code=500).
|
||||
|
||||
### *async* api.v1.auth.login(user: UserLogin, request: Request, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Авторизует пользователя и создаёт сессию.
|
||||
|
||||
Проверяет учетные данные пользователя и возвращает токен и session_id для
|
||||
последующей авторизации.
|
||||
|
||||
* **Parameters:**
|
||||
* **user** (*UserLogin*) – Объект с данными для входа (username, password).
|
||||
* **request** (*Request*) – Объект запроса для получения client_id (IP-адрес клиента).
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Объект с access_token и session_id для авторизации.
|
||||
* **Return type:**
|
||||
Token
|
||||
* **Raises:**
|
||||
**HTTPException** – Если учетные данные неверны (status_code=401) или произошла
|
||||
внутренняя ошибка (status_code=500).
|
||||
|
||||
### *async* api.v1.auth.logout(request: Request, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Выход из системы, удаление сессии.
|
||||
|
||||
Удаляет активную сессию пользователя по client_id.
|
||||
|
||||
* **Parameters:**
|
||||
* **request** (*Request*) – Объект запроса для получения client_id (IP-адрес клиента).
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Пустой словарь или сообщение об успешном выходе.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если сессия не найдена (status_code=401) или произошла
|
||||
внутренняя ошибка (status_code=500).
|
||||
|
||||
### *async* api.v1.auth.register(user: UserCreate, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Регистрирует нового пользователя.
|
||||
|
||||
Создаёт нового пользователя на основе предоставленных данных и возвращает
|
||||
информацию о зарегистрированном пользователе.
|
||||
|
||||
* **Parameters:**
|
||||
* **user** (*UserCreate*) – Объект с данными нового пользователя (username, password, is_admin).
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Объект с данными зарегистрированного пользователя (id, username, is_admin).
|
||||
* **Return type:**
|
||||
UserResponse
|
||||
* **Raises:**
|
||||
**HTTPException** – Если пользователь уже существует (status_code=400) или произошла
|
||||
внутренняя ошибка (status_code=500).
|
||||
63
Documentation/Tech-docs/api/endpoints/ip.md
Normal file
63
Documentation/Tech-docs/api/endpoints/ip.md
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# api.v1.ip
|
||||
|
||||
### *async* api.v1.ip.apply_ip_config(data: Dict[str, Any] = Body(PydanticUndefined), translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Применяет проверенные IP-настройки к указанному сетевому профилю.
|
||||
|
||||
Обновляет настройки соединения через NetworkManager, отключает и
|
||||
переподключает устройство к сети.
|
||||
|
||||
* **Parameters:**
|
||||
* **data** (*Dict* *[**str* *,* *Any* *]*) – Словарь с данными конфигурации, включая
|
||||
“connection_id” и “ipv4_updates” с обновлениями IP-настроек.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с ключами:
|
||||
: - ”success” (bool): Успешность операции.
|
||||
- ”message” (str): Сообщение об успешном применении настроек.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если подключение не найдено (status_code=404) или
|
||||
произошла внутренняя ошибка (status_code=500).
|
||||
|
||||
### *async* api.v1.ip.check_ip_config(data: Dict[str, Any] = Body(PydanticUndefined), translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Проверяет доступность IP-адреса перед его применением.
|
||||
|
||||
Выполняет ARP-сканирование для проверки, занят ли указанный IP-адрес,
|
||||
и возвращает результат проверки.
|
||||
|
||||
* **Parameters:**
|
||||
* **data** (*Dict* *[**str* *,* *Any* *]*) – Словарь с данными конфигурации, включая
|
||||
“ipv4_updates” с полем “ipv4.address-data” для нового IP-адреса.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с ключами:
|
||||
: - ”available” (bool): Доступен ли IP-адрес.
|
||||
- ”message” (str): Сообщение о результате проверки.
|
||||
* **Return type:**
|
||||
Dict[str, Any]
|
||||
* **Raises:**
|
||||
**HTTPException** – Если произошла внутренняя ошибка (status_code=500).
|
||||
|
||||
### *async* api.v1.ip.save_ip_config(data: Dict[str, Any] = Body(PydanticUndefined), translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Применяет проверенные IP-настройки для отката сетевого профиля.
|
||||
|
||||
Используется для сохранения и отката настроек сетевого профиля к предыдущему
|
||||
состоянию через NetworkManager.
|
||||
|
||||
* **Parameters:**
|
||||
* **data** (*Dict* *[**str* *,* *Any* *]*) – Словарь с данными конфигурации, включая
|
||||
“connection_id” и “ipv4_updates” с обновлениями IP-настроек.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с ключами:
|
||||
: - ”success” (bool): Успешность операции.
|
||||
- ”message” (str): Сообщение об успешном применении настроек.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если подключение не найдено (status_code=404) или
|
||||
произошла внутренняя ошибка (status_code=500).
|
||||
93
Documentation/Tech-docs/api/endpoints/network.md
Normal file
93
Documentation/Tech-docs/api/endpoints/network.md
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
# api.v1.network
|
||||
|
||||
### *class* api.v1.network.ContainerPositionManager
|
||||
|
||||
Bases: `object`
|
||||
|
||||
Класс для управления позициями и состоянием контейнеров.
|
||||
|
||||
Хранит и обновляет координаты (x, y) и состояние (isOpen) для контейнеров
|
||||
активации и деактивации.
|
||||
|
||||
#### get_position_and_state(container_name: str, translations: Translations = Depends(translations_dependency)) → Tuple[int, int, bool]
|
||||
|
||||
Получает текущие координаты и состояние указанного контейнера.
|
||||
|
||||
* **Parameters:**
|
||||
* **container_name** (*str*) – Имя контейнера (“activation” или “deactivation”).
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Кортеж с координатами (x, y) и состоянием (isOpen).
|
||||
* **Return type:**
|
||||
Tuple[int, int, bool]
|
||||
* **Raises:**
|
||||
**ValueError** – Если указан неверный идентификатор контейнера.
|
||||
|
||||
#### update_position(container_id: int, x: int, y: int, isOpen: bool) → None
|
||||
|
||||
Обновляет позицию и состояние контейнера по его идентификатору.
|
||||
|
||||
* **Parameters:**
|
||||
* **container_id** (*int*) – Идентификатор контейнера (1 для “activation”, 2 для “deactivation”).
|
||||
* **x** (*int*) – Новая координата X.
|
||||
* **y** (*int*) – Новая координата Y.
|
||||
* **isOpen** (*bool*) – Новое состояние контейнера (открыт/закрыт).
|
||||
* **Raises:**
|
||||
**ValueError** – Если container_id не соответствует ни одному контейнеру.
|
||||
|
||||
### *async* api.v1.network.get_hostname(translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Возвращает имя хоста системы.
|
||||
|
||||
Выполняет запрос к сервису для получения имени хоста.
|
||||
|
||||
* **Parameters:**
|
||||
**translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с ключом “hostname” и значением имени хоста.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если произошла ошибка при получении имени хоста (status_code=500).
|
||||
|
||||
### *async* api.v1.network.get_network_data(translations: Translations = Depends(translations_dependency)) → Dict[str, Dict]
|
||||
|
||||
Возвращает текущие сетевые данные в виде словаря.
|
||||
|
||||
Получает данные о сетевых интерфейсах, разделяет их на активные и неактивные,
|
||||
и возвращает их в формате Activation и Deactivation с учётом позиций и состояний
|
||||
контейнеров.
|
||||
|
||||
* **Parameters:**
|
||||
**translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с ключами “activation” и “deactivation”, содержащими
|
||||
: данные о соответствующих контейнерах.
|
||||
* **Return type:**
|
||||
Dict[str, Dict]
|
||||
* **Raises:**
|
||||
**HTTPException** – Если произошла ошибка при получении данных (status_code=500).
|
||||
|
||||
### *async* api.v1.network.update_container_position(data: Dict[str, int | bool] = Body(PydanticUndefined), translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Обновляет позицию и состояние контейнера.
|
||||
|
||||
Принимает данные о новом положении и состоянии контейнера и обновляет их
|
||||
в менеджере позиций.
|
||||
|
||||
* **Parameters:**
|
||||
* **data** (*Dict* *[**str* *,* *Union* *[**int* *,* *bool* *]* *]*) – Словарь с ключами:
|
||||
- “container_id” (int): Идентификатор контейнера (1 или 2).
|
||||
- “container_x” (int): Новая координата X.
|
||||
- “container_y” (int): Новая координата Y.
|
||||
- “isOpen” (bool): Новое состояние контейнера (открыт/закрыт).
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с ключами:
|
||||
: - ”success” (bool): Успешность операции.
|
||||
- ”message” (str): Сообщение об успешном обновлении.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если отсутствуют обязательные поля (status_code=400) или
|
||||
типы данных неверны.
|
||||
104
Documentation/Tech-docs/api/endpoints/settings.md
Normal file
104
Documentation/Tech-docs/api/endpoints/settings.md
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
# api.v1.settings
|
||||
|
||||
### api.v1.settings.clear_all_data(translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Очищает данные узлов подсети и точек доступа Wi-Fi в обоих файлах.
|
||||
|
||||
Удаляет все записи из devices.json и wifi.json.
|
||||
|
||||
* **Parameters:**
|
||||
**translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешной очистке.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если произошла ошибка очистки (status_code=500).
|
||||
|
||||
### api.v1.settings.clear_subnet(subnet: str | None = None, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Очищает данные узлов подсети, сохранённые в devices.json.
|
||||
|
||||
Удаляет все записи об узлах подсети, оставляя файл пустым.
|
||||
|
||||
* **Parameters:**
|
||||
* **subnet** (*Optional* *[**str* *]*) – Подсеть в формате CIDR (например, “10.1.1.0/24”).
|
||||
Если None, очищает все подсети.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешной очистке.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если произошла ошибка очистки (status_code=500).
|
||||
|
||||
### api.v1.settings.clear_wifi(translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Очищает данные точек доступа Wi-Fi, сохранённые в wifi.json.
|
||||
|
||||
Удаляет все записи о точках доступа, оставляя файл пустым.
|
||||
|
||||
* **Parameters:**
|
||||
**translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешной очистке.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если произошла ошибка очистки (status_code=500).
|
||||
|
||||
### *async* api.v1.settings.export_devices(request: SubnetScanRequest = Body(PydanticUndefined), translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Экспортирует файл с данными устройств в формате JSON для указанной подсети.
|
||||
|
||||
* **Parameters:**
|
||||
* **request** (*SubnetScanRequest*) – Объект с полем subnet в формате CIDR.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Файл <subnet>.json для скачивания.
|
||||
* **Return type:**
|
||||
FileResponse
|
||||
* **Raises:**
|
||||
**HTTPException** – Если файл не найден (status_code=404).
|
||||
|
||||
### *async* api.v1.settings.export_wifi(translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Экспортирует файл с данными устройств в формате JSON.
|
||||
|
||||
* **Parameters:**
|
||||
**translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Файл wifi.json для скачивания.
|
||||
* **Return type:**
|
||||
FileResponse
|
||||
* **Raises:**
|
||||
**HTTPException** – Если файл не найден (status_code=404).
|
||||
|
||||
### *async* api.v1.settings.get_system_language(request: Request, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Выводит текущий язык, установленный в системе на основе locale.
|
||||
|
||||
Выполняет команду ‘locale’ в системе и извлекает параметры LANG
|
||||
|
||||
* **Parameters:**
|
||||
* **request** (*Request*) – Объект запроса для доступа к параметрам.
|
||||
* **translations** – Объект переводов текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с текущим языком системы.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если не удалось извлечь системный язык (status_code=500).
|
||||
|
||||
### api.v1.settings.set_language(locale: str, response: Response, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Устанавливает куку locale для смены языка пользователя.
|
||||
|
||||
* **Parameters:**
|
||||
* **locale** (*str*) – Используемый язык.
|
||||
* **response** (*Response*) – Запрос.
|
||||
* **translations** – Объект переводов текущего языка.
|
||||
* **Returns:**
|
||||
Сообщение об успешной установке языка.
|
||||
* **Return type:**
|
||||
dict
|
||||
193
Documentation/Tech-docs/api/endpoints/subnet.md
Normal file
193
Documentation/Tech-docs/api/endpoints/subnet.md
Normal file
|
|
@ -0,0 +1,193 @@
|
|||
# api.v1.subnet
|
||||
|
||||
### api.v1.subnet.add_note(mac: str, request: NoteRequest, subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Добавляет заметку для устройства по MAC-адресу.
|
||||
|
||||
Привязывает заметку к устройству, идентифицируемому по MAC-адресу.
|
||||
|
||||
* **Parameters:**
|
||||
* **mac** (*str*) – MAC-адрес устройства.
|
||||
* **request** (*NoteRequest*) – Объект с полем “note” для текста заметки.
|
||||
* **subnet_service** – Сервис сканирования подсети.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешном добавлении заметки.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если устройство не найдено (status_code=404), заметка уже
|
||||
существует (status_code=400), или произошла внутренняя ошибка (status_code=500).
|
||||
|
||||
### api.v1.subnet.add_wifi_note(ssid: str, request: NoteRequest, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Добавляет заметку для сети Wi-Fi по SSID.
|
||||
|
||||
Привязывает заметку к Wi-Fi сети, идентифицируемой по SSID.
|
||||
|
||||
* **Parameters:**
|
||||
* **ssid** (*str*) – Идентификатор Wi-Fi сети.
|
||||
* **request** (*NoteRequest*) – Объект с полем “note” для текста заметки.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешном добавлении заметки.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если сеть не найдена (status_code=404), заметка уже
|
||||
существует (status_code=400), или произошла внутренняя ошибка (status_code=500).
|
||||
|
||||
### api.v1.subnet.connect_to_wifi(request: WifiConnectRequest, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Подключается к Wi-Fi сети по SSID и паролю.
|
||||
|
||||
Выполняет подключение к указанной Wi-Fi сети с использованием предоставленных
|
||||
учетных данных.
|
||||
|
||||
* **Parameters:**
|
||||
* **request** (*WifiConnectRequest*) – Объект с полями “ssid” и “password”.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешном подключении.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если подключение не удалось (status_code=400).
|
||||
|
||||
### api.v1.subnet.delete_note(mac: str, subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Удаляет заметку для устройства по MAC-адресу.
|
||||
|
||||
Удаляет привязанную заметку для указанного устройства.
|
||||
|
||||
* **Parameters:**
|
||||
* **mac** (*str*) – MAC-адрес устройства.
|
||||
* **subnet_service** – Сервис сканирования подсети.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешном удалении заметки.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если устройство не найдено (status_code=404), заметка не
|
||||
существует (status_code=400), или произошла внутренняя ошибка (status_code=500).
|
||||
|
||||
### api.v1.subnet.delete_wifi_note(ssid: str, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Удаляет заметку для сети Wi-Fi по SSID.
|
||||
|
||||
Удаляет привязанную заметку для указанной Wi-Fi сети.
|
||||
|
||||
* **Parameters:**
|
||||
* **ssid** (*str*) – Идентификатор Wi-Fi сети.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешном удалении заметки.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если сеть не найдена (status_code=404), заметка не
|
||||
существует (status_code=400), или произошла внутренняя ошибка (status_code=500).
|
||||
|
||||
### api.v1.subnet.disconnect_from_wifi(request: WifiDisconnectRequest, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Отключается от Wi-Fi сети по указанному SSID.
|
||||
|
||||
Выполняет отключение от указанной Wi-Fi сети.
|
||||
|
||||
* **Parameters:**
|
||||
* **request** (*WifiDisconnectRequest*) – Объект с полем “ssid”.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешном отключении.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если отключение не удалось (status_code=400).
|
||||
|
||||
### api.v1.subnet.get_wifi_status(translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Проверяет статус текущего подключения к Wi-Fi.
|
||||
|
||||
Возвращает информацию о текущем состоянии подключения и SSID, если подключение активно.
|
||||
|
||||
* **Parameters:**
|
||||
**translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с ключами:
|
||||
: - ”status” (str): Состояние (“connected” или другое).
|
||||
- ”ssid” (str, optional): SSID текущей сети, если подключено.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если проверка статуса не удалась (status_code=400).
|
||||
|
||||
### api.v1.subnet.scan_subnet(request: SubnetScanRequest = Body(PydanticUndefined), subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Сканирует локальную подсеть и возвращает данные об устройствах.
|
||||
|
||||
Выполняет сканирование указанной подсети для обнаружения активных устройств.
|
||||
|
||||
* **Parameters:**
|
||||
* **request** (*SubnetScanRequest*) – Объект с полем subnet.
|
||||
* **subnet_service** – Сервис сканирования подсети.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Объект с результатами сканирования (устройства и их данные).
|
||||
* **Return type:**
|
||||
SubnetScanResult
|
||||
* **Raises:**
|
||||
**HTTPException** – Если произошла ошибка сканирования (status_code=500).
|
||||
|
||||
### api.v1.subnet.scan_wifi(timeout: int = 30, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Сканирует Wi-Fi точки доступа и возвращает данные о них.
|
||||
|
||||
Выполняет сканирование доступных Wi-Fi сетей с указанным таймаутом.
|
||||
|
||||
* **Parameters:**
|
||||
* **timeout** (*int* *,* *optional*) – Таймаут сканирования в секундах. По умолчанию 30.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Объект с результатами сканирования (список Wi-Fi сетей).
|
||||
* **Return type:**
|
||||
WifiScanResult
|
||||
* **Raises:**
|
||||
**HTTPException** – Если произошла ошибка сканирования Wi-Fi (status_code=500).
|
||||
|
||||
### api.v1.subnet.update_note(mac: str, request: NoteRequest, subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Обновляет заметку для устройства по MAC-адресу.
|
||||
|
||||
Изменяет существующую заметку, привязанную к устройству.
|
||||
|
||||
* **Parameters:**
|
||||
* **mac** (*str*) – MAC-адрес устройства.
|
||||
* **request** (*NoteRequest*) – Объект с полем “note” для нового текста заметки.
|
||||
* **subnet_service** – Сервис сканирования подсети.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешном обновлении заметки.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если устройство не найдено (status_code=404), заметка не
|
||||
существует (status_code=400), или произошла внутренняя ошибка (status_code=500).
|
||||
|
||||
### api.v1.subnet.update_wifi_note(ssid: str, request: NoteRequest, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Обновляет заметку для сети Wi-Fi по SSID.
|
||||
|
||||
Изменяет существующую заметку, привязанную к Wi-Fi сети.
|
||||
|
||||
* **Parameters:**
|
||||
* **ssid** (*str*) – Идентификатор Wi-Fi сети.
|
||||
* **request** (*NoteRequest*) – Объект с полем “note” для нового текста заметки.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Returns:**
|
||||
Словарь с сообщением об успешном обновлении заметки.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если сеть не найдена (status_code=404), заметка не
|
||||
существует (status_code=400), или произошла внутренняя ошибка (status_code=500).
|
||||
104
Documentation/Tech-docs/api/endpoints/ufw.md
Normal file
104
Documentation/Tech-docs/api/endpoints/ufw.md
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
# api.v1.ufw
|
||||
|
||||
### *class* api.v1.ufw.RuleNumbers(, numbers: List[int])
|
||||
|
||||
Bases: `BaseModel`
|
||||
|
||||
#### model_config *: ClassVar[ConfigDict]* *= {}*
|
||||
|
||||
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
|
||||
|
||||
#### numbers *: List[int]*
|
||||
|
||||
### *async* api.v1.ufw.add_ufw_in_rules(rules: List[UFWRule])
|
||||
|
||||
Добавляет входящие (in) правила UFW.
|
||||
|
||||
* **Parameters:**
|
||||
**rules** (*List* *[**UFWRule* *]*) – Список правил, определяющих направления,
|
||||
порты/диапазоны/протоколы и действия (allow/deny/reject).
|
||||
* **Returns:**
|
||||
Итог выполнения с количеством успешно добавленных правил и деталями
|
||||
по каждому правилу.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
* **HTTPException** – Если UFW отключен (status_code=400) или при внутренних
|
||||
* **ошибках** **(****status_code=500****)****.** –
|
||||
|
||||
### *async* api.v1.ufw.add_ufw_out_rules(rules: List[UFWRule])
|
||||
|
||||
Добавляет исходящие (out) правила UFW.
|
||||
|
||||
* **Parameters:**
|
||||
**rules** (*List* *[**UFWRule* *]*) – Список правил исходящего трафика для добавления.
|
||||
* **Returns:**
|
||||
Объект статуса с сообщением об успешном добавлении.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
* **HTTPException** – Если UFW отключен (status_code=400) или при внутренних
|
||||
* **ошибках** **(****status_code=500****)****.** –
|
||||
|
||||
### *async* api.v1.ufw.delete_ufw_rules(rule_numbers: RuleNumbers)
|
||||
|
||||
Удаляет правила UFW по их номерам.
|
||||
|
||||
* **Parameters:**
|
||||
**rule_numbers** (*RuleNumbers*) – Номера правил, подлежащих удалению (как в
|
||||
выводе ufw status numbered).
|
||||
* **Returns:**
|
||||
Информация об общем количестве удаляемых правил, числе успешных и
|
||||
возможной ошибке.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – При ошибках удаления (status_code=500).
|
||||
|
||||
### *async* api.v1.ufw.disable_ufw()
|
||||
|
||||
Выключает UFW.
|
||||
|
||||
* **Returns:**
|
||||
Словарь с ключами status и message при успешном выполнении.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если выключение завершилось неуспешно (status_code=500).
|
||||
|
||||
### *async* api.v1.ufw.enable_ufw()
|
||||
|
||||
Включает UFW.
|
||||
|
||||
* **Returns:**
|
||||
Словарь с ключами status и message при успешном выполнении.
|
||||
* **Return type:**
|
||||
dict
|
||||
* **Raises:**
|
||||
**HTTPException** – Если включение завершилось неуспешно (status_code=500).
|
||||
|
||||
### *async* api.v1.ufw.get_ufw_rules()
|
||||
|
||||
Возвращает все правила UFW.
|
||||
|
||||
Осуществляет обращение к сервису UFWService для чтения текущего списка
|
||||
правил брандмауэра и возвращает результат в сериализованном виде для клиента.
|
||||
|
||||
* **Returns:**
|
||||
Структура с коллекцией правил и сопутствующей
|
||||
информацией о состоянии.
|
||||
* **Return type:**
|
||||
UFWRulesResponse
|
||||
* **Raises:**
|
||||
**HTTPException** – В случае ошибок взаимодействия с UFW (status_code=500).
|
||||
|
||||
### *async* api.v1.ufw.get_ufw_status()
|
||||
|
||||
Возвращает текущий статус UFW.
|
||||
|
||||
* **Returns:**
|
||||
Объект со сведениями о включенности UFW и деталями статуса.
|
||||
* **Return type:**
|
||||
UFWStatus
|
||||
* **Raises:**
|
||||
**HTTPException** – Если не удалось получить статус (status_code=500).
|
||||
78
Documentation/Tech-docs/api/endpoints/websocket.md
Normal file
78
Documentation/Tech-docs/api/endpoints/websocket.md
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# api.v1.websocket
|
||||
|
||||
### *class* api.v1.websocket.WebSocketManager
|
||||
|
||||
Bases: `object`
|
||||
|
||||
Класс для управления подключениями к WebSocket-серверу.
|
||||
|
||||
Обрабатывает подключение, отключение и трансляцию сообщений для клиентов,
|
||||
подключённых через WebSocket.
|
||||
|
||||
#### *async* broadcast(message: dict)
|
||||
|
||||
Транслирует сообщения всем подключённым клиентам.
|
||||
|
||||
Отправляет JSON-данные всем активным соединениям, обрабатывая
|
||||
отключения клиентов.
|
||||
|
||||
* **Parameters:**
|
||||
**message** (*dict*) – Сообщение для трансляции в формате JSON.
|
||||
* **Raises:**
|
||||
* **WebSocketDisconnect** – Если клиент неожиданно отключился.
|
||||
* **Exception** – Если произошла другая ошибка при отправке.
|
||||
|
||||
#### *async* connect(websocket: WebSocket)
|
||||
|
||||
Подключает клиента к WebSocket-серверу.
|
||||
|
||||
Принимает подключение и добавляет WebSocket в список активных соединений.
|
||||
|
||||
* **Parameters:**
|
||||
**websocket** (*WebSocket*) – Объект WebSocket для подключения.
|
||||
* **Raises:**
|
||||
**Exception** – Если произошла ошибка при принятии подключения.
|
||||
|
||||
#### disconnect(websocket: WebSocket)
|
||||
|
||||
Отключает клиента от WebSocket-серверу.
|
||||
|
||||
Удаляет WebSocket из списка активных соединений.
|
||||
|
||||
* **Parameters:**
|
||||
**websocket** (*WebSocket*) – Объект WebSocket для отключения.
|
||||
|
||||
### *async* api.v1.websocket.broadcast_data(translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Таск для периодической трансляции сетевых данных.
|
||||
|
||||
Выполняет сканирование сети и отправляет данные всем подключённым клиентам
|
||||
с интервалом в 2 секунды.
|
||||
|
||||
* **Parameters:**
|
||||
**translations** – Объект переводов для текущего языка.
|
||||
* **Raises:**
|
||||
**Exception** – Если произошла ошибка при получении данных или трансляции.
|
||||
|
||||
### *async* api.v1.websocket.startup_event()
|
||||
|
||||
Запуск таска для трансляции сетевых данных при старте приложения.
|
||||
|
||||
Создаёт асинхронную задачу для периодической трансляции данных.
|
||||
|
||||
* **Raises:**
|
||||
**Exception** – Если произошла ошибка при запуске таска.
|
||||
|
||||
### *async* api.v1.websocket.websocket_endpoint(websocket: WebSocket, translations: Translations = Depends(translations_dependency))
|
||||
|
||||
Обработчик WebSocket-соединения.
|
||||
|
||||
Управляет соединением клиента, принимает данные для обновления позиций
|
||||
контейнеров и транслирует сетевые данные.
|
||||
|
||||
* **Parameters:**
|
||||
* **websocket** (*WebSocket*) – Объект WebSocket для обработки соединения.
|
||||
* **translations** – Объект переводов для текущего языка.
|
||||
* **Raises:**
|
||||
* **WebSocketDisconnect** – Если клиент отключился.
|
||||
* **Exception** – Если произошла ошибка при обработке данных.
|
||||
Loading…
Add table
Add a link
Reference in a new issue