40 lines
1.4 KiB
Dart
40 lines
1.4 KiB
Dart
import 'package:mobile_monitoring/data/models/service_result.dart';
|
|
import 'package:mobile_monitoring/data/services/hidroponik_data_service.dart';
|
|
import 'package:mobile_monitoring/data/services/home_service.dart';
|
|
import 'package:mobile_monitoring/logic/controllers/base_controller.dart';
|
|
|
|
class HomeController extends BaseController {
|
|
HomeController({
|
|
HomeService? homeService,
|
|
HidroponikDataService? hidroponikDataService,
|
|
}) : _homeService = homeService ?? HomeService(),
|
|
_hidroponikDataService = hidroponikDataService ?? HidroponikDataService();
|
|
|
|
final HomeService _homeService;
|
|
final HidroponikDataService _hidroponikDataService;
|
|
|
|
int _selectedIndex = 1;
|
|
|
|
int get selectedIndex => _selectedIndex;
|
|
String get userDisplayName => _homeService.getUserDisplayName();
|
|
String get userInitials => _homeService.getUserInitials(userDisplayName);
|
|
String? get currentUserId => _homeService.getCurrentUserIdResult().data;
|
|
|
|
void setSelectedIndex(int index) {
|
|
_selectedIndex = index;
|
|
notifyListeners();
|
|
}
|
|
|
|
ServiceResult<MonitoringData> parseMonitoringData(Map<String, dynamic> data) {
|
|
return _homeService.parseMonitoringDataResult(data);
|
|
}
|
|
|
|
ServiceResult<HomeDataError> mapError(Object error) {
|
|
return _homeService.getErrorInfoResult(error);
|
|
}
|
|
|
|
Stream<Map<String, dynamic>?> latestDataStream(String? userId) {
|
|
return _hidroponikDataService.latestDataStream(userId: userId);
|
|
}
|
|
}
|