add proper logging

This commit is contained in:
shenlong-tanwen
2024-08-21 23:43:48 +05:30
parent 1631df70e9
commit 75448ce56b
37 changed files with 923 additions and 224 deletions
+37 -6
View File
@@ -1,16 +1,25 @@
import 'dart:async';
import 'dart:io';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:dio/dio.dart';
import 'package:get_it/get_it.dart';
import 'package:immich_mobile/domain/interfaces/log.interface.dart';
import 'package:immich_mobile/domain/interfaces/store.interface.dart';
import 'package:immich_mobile/domain/interfaces/user.interface.dart';
import 'package:immich_mobile/domain/models/user.model.dart';
import 'package:immich_mobile/domain/repositories/database.repository.dart';
import 'package:immich_mobile/domain/repositories/log.repository.dart';
import 'package:immich_mobile/domain/repositories/store.repository.dart';
import 'package:immich_mobile/domain/repositories/user.repository.dart';
import 'package:immich_mobile/domain/services/app_setting.service.dart';
import 'package:immich_mobile/domain/services/login.service.dart';
import 'package:immich_mobile/domain/services/server_info.service.dart';
import 'package:immich_mobile/domain/store_manager.dart';
import 'package:immich_mobile/presentation/modules/common/states/current_user.state.dart';
import 'package:immich_mobile/presentation/modules/common/states/server_info/server_feature_config.state.dart';
import 'package:immich_mobile/presentation/modules/theme/states/app_theme.state.dart';
import 'package:immich_mobile/presentation/router/router.dart';
import 'package:immich_mobile/utils/immich_auth_interceptor.dart';
import 'package:openapi/openapi.dart';
final di = GetIt.I;
@@ -29,12 +38,12 @@ class ServiceLocator {
// Init store
di.registerFactory<IStoreRepository>(() => StoreDriftRepository(di()));
// StoreManager populates its cache with a async gap, manually signalReady once the cache is populated.
di.registerSingleton<StoreManager>(StoreManager(di()), signalsReady: true);
// Logs
di.registerFactory<ILogRepository>(() => LogDriftRepository(di()));
// App Settings
di.registerFactory<AppSettingService>(() => AppSettingService(di()));
// User Repo
di.registerFactory<IUserRepository>(() => UserDriftRepository(di()));
// Login Service
di.registerFactory<LoginService>(() => const LoginService());
@@ -46,17 +55,35 @@ class ServiceLocator {
di.registerLazySingleton<AppThemeCubit>(() => AppThemeCubit(di()));
}
static void registerPostValidationServices(String endpoint) {
static FutureOr<void> registerPostValidationServices(String endpoint) async {
if (di.isRegistered<Openapi>()) {
return;
}
final deviceInfo = DeviceInfoPlugin();
final String deviceModel;
if (Platform.isIOS) {
deviceModel = (await deviceInfo.iosInfo).utsname.machine;
} else {
deviceModel = (await deviceInfo.androidInfo).model;
}
// ====== DOMAIN
di.registerSingleton<Openapi>(
Openapi(
basePathOverride: endpoint,
interceptors: [BearerAuthInterceptor()],
dio: Dio(
BaseOptions(
baseUrl: endpoint,
connectTimeout: const Duration(milliseconds: 5000),
receiveTimeout: const Duration(milliseconds: 3000),
headers: {
'deviceModel': deviceModel,
'deviceType': Platform.operatingSystem,
},
),
),
interceptors: [ImmichAuthInterceptor()],
),
);
di.registerFactory<ServerInfoService>(() => ServerInfoService(di()));
@@ -67,4 +94,8 @@ class ServiceLocator {
() => ServerFeatureConfigCubit(di()),
);
}
static void registerCurrentUser(User user) {
di.registerSingleton<CurrentUserCubit>(CurrentUserCubit(user));
}
}