Waaaay big enchancements

This commit is contained in:
Artem Kokos
2026-04-02 23:51:28 +07:00
parent 6221fbcc71
commit 5e09f41747
14 changed files with 1308 additions and 111 deletions

View File

@@ -22,6 +22,11 @@ class IgnisApi {
_dio.options.receiveTimeout = const Duration(seconds: 15);
}
// ─── Авторизация ───────────────────────────────────────────
/// Проверка текущего ключа: возвращает {is_admin, name}
Future<Response> getAuthMe() => _dio.get('/auth/me');
// ─── Устройства и группы ───────────────────────────────────
/// Все устройства (лампы)
@@ -82,4 +87,34 @@ class IgnisApi {
/// Отменить задачу расписания
Future<Response> cancelTask(String jobId) =>
_dio.delete('/schedules/$jobId');
// ─── API-ключи ─────────────────────────────────────────────
/// Список всех гостевых ключей
Future<Response> getApiKeys() => _dio.get('/api-keys');
/// Создать гостевой ключ
Future<Response> createApiKey(String name, {bool isAdmin = false}) =>
_dio.post('/api-keys', queryParameters: {
'name': name,
'is_admin': isAdmin,
});
/// Отозвать ключ (body: {key: ...})
Future<Response> revokeApiKey(String key) =>
_dio.post('/api-keys/revoke', data: {'key': key});
/// Активировать ключ (body: {key: ...})
Future<Response> activateApiKey(String key) =>
_dio.post('/api-keys/activate', data: {'key': key});
// ─── Статистика ────────────────────────────────────────────
/// Сводная статистика за N дней
Future<Response> getStatsSummary({int days = 7}) =>
_dio.get('/stats/summary', queryParameters: {'days': days});
/// Лог последних N событий
Future<Response> getStatsLog({int limit = 100}) =>
_dio.get('/stats/log', queryParameters: {'limit': limit});
}