Devices Service
Файл:
backend/src/services/devices.rs
Сервис управления устройствами. Отвечает за получение списка устройств, текущего устройства и обновление их параметров.
Эндпоинты
| Метод | Путь | Функция | Описание |
|---|---|---|---|
| GET | /api/devices | list_devices_svc | Список всех устройств |
| GET | /api/devices/current | get_current_device_svc | Текущее устройство |
| POST | /api/devices/current/load | load_current_device_svc | Загрузить текущее устройство из БД |
| GET | /api/devices/current/exists | has_current_device_svc | Проверка наличия текущего устройства |
| POST | /api/devices/name | update_device_name_svc | Обновить имя устройства |
Зависимости
DeviceManager— CRUD операции с устройствами в SQLiteIdentityManager— получение текущей identity для фильтрации устройств
list_devices_svc
GET /api/devices
Возвращает список всех устройств, привязанных к текущей identity.
Параметры
| Имя | Тип | Описание |
|---|---|---|
device_manager | Arc<Mutex<DeviceManager>> | Менеджер устройств |
Возвращает
Result<Vec<Device>, String>
Логика
- Захватывает lock на
DeviceManager - Вызывает
list_devices() - Записывает общее количество устройств в метрики
get_current_device_svc
GET /api/devices/current
Возвращает текущее устройство (на котором запущен backend).
Параметры
| Имя | Тип | Описание |
|---|---|---|
device_manager | Arc<Mutex<DeviceManager>> | Менеджер устройств |
Возвращает
Result<Option<Device>, String>
Логика
- Захватывает lock на
DeviceManager - Возвращает клон текущего устройства
load_current_device_svc
POST /api/devices/current/load
Загружает данные текущего устройства из базы данных в память.
Параметры
| Имя | Тип | Описание |
|---|---|---|
device_manager | Arc<Mutex<DeviceManager>> | Менеджер устройств |
Возвращает
Result<(), String>
Логика
- Захватывает lock на
DeviceManager - Вызывает
load_current_device()— читает из SQLite и кеширует в памяти
has_current_device_svc
GET /api/devices/current/exists
Проверяет, существует ли текущее устройство (было ли оно создано при первом запуске).
Параметры
| Имя | Тип | Описание |
|---|---|---|
device_manager | Arc<Mutex<DeviceManager>> | Менеджер устройств |
Возвращает
Result<bool, String>
Логика
- Захватывает lock на
DeviceManager - Возвращает
current_device.is_some()
update_device_name_svc
POST /api/devices/name
Обновляет отображаемое имя устройства.
Параметры
| Имя | Тип | Описание |
|---|---|---|
device_id | String | ID устройства |
name | String | Новое имя |
device_manager | Arc<Mutex<DeviceManager>> | Менеджер устройств |
Возвращает
Result<(), String>
Логика
- Захватывает lock на
DeviceManager - Вызывает
update_device_name(device_id, name) - Записывает метрики