HTTP-клиент к /api/v1 с Sanctum-токеном (хранится в secure storage), модели зеркалят Laravel API Resources. Экраны: логин, список устройств с живым статусом, детальная страница устройства (история телеметрии, turn-on/turn-off/set-level с проверкой capability), списки зон и правил автоматизации (пока только чтение — формы создания/редактирования впереди).
22 lines
756 B
Dart
22 lines
756 B
Dart
import 'dart:io' show Platform;
|
|
|
|
/// Backend base URL, without a trailing slash and without `/api/v1`.
|
|
///
|
|
/// Override at build/run time, e.g.:
|
|
/// flutter run --dart-define=API_BASE_URL=http://192.168.1.10:8000
|
|
///
|
|
/// Without an override we guess a sane per-platform default for local dev:
|
|
/// the Android emulator can't reach the host via `localhost` (it has its own
|
|
/// loopback), so it needs the special `10.0.2.2` alias instead.
|
|
class ApiConfig {
|
|
static const _override = String.fromEnvironment('API_BASE_URL');
|
|
|
|
static String get baseUrl {
|
|
if (_override.isNotEmpty) return _override;
|
|
if (!Platform.isAndroid) return 'http://localhost:8000';
|
|
return 'http://10.0.2.2:8000';
|
|
}
|
|
|
|
static String get apiV1Url => '$baseUrl/api/v1';
|
|
}
|