Waaaay big enchancements
This commit is contained in:
@@ -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});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user