import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_inspection/data/data_source/remote/auth/auth_remote.dart'; import 'package:rasadyar_inspection/data/data_source/remote/auth/auth_remote_imp.dart'; import 'package:rasadyar_inspection/data/data_source/remote/inspection/inspection_remote_imp.dart'; import 'package:rasadyar_inspection/data/data_source/remote/user/user_data_source_imp.dart'; import 'package:rasadyar_inspection/data/repositories/auth/auth_repository_imp.dart'; import 'package:rasadyar_inspection/data/repositories/inspection/inspection_repository_imp.dart'; import 'package:rasadyar_inspection/data/repositories/user/user_repository_imp.dart'; import 'package:rasadyar_inspection/data/utils/dio_exception_handeler.dart'; import 'package:rasadyar_inspection/presentation/routes/app_routes.dart'; GetIt diInspection = GetIt.asNewInstance(); Future setupInspectionDI() async { diInspection.registerSingleton(DioErrorHandler()); var tokenService = Get.find(); if (tokenService.baseurl.value == null) { await tokenService.saveBaseUrl(Module.inspection,'https://bazrasbackend.rasadyaar.ir/'); } diInspection.registerLazySingleton( () => AppInterceptor( //TODO : Update the base URL to the correct one for inspection module refreshTokenCallback: () async => null, saveTokenCallback: (String newToken) async { // await tokenService.saveAccessToken(newToken); }, clearTokenCallback: () async { await tokenService.deleteModuleTokens(Module.inspection); Get.offAllNamed(InspectionRoutes.auth, arguments: Module.inspection); }, authArguments: Module.inspection, ), ); diInspection.registerLazySingleton(() { return DioRemote( baseUrl: tokenService.baseurl.value, interceptors: diInspection.get(), ); }); var dioRemote = diInspection.get(); await dioRemote.init(); diInspection.registerLazySingleton( () => AuthRemoteImp(dioRemote), ); diInspection.registerSingleton( AuthRepositoryImpl(diInspection.get()), ); diInspection.registerSingleton( UserRemoteDataSourceImp(dioRemote), ); diInspection.registerSingleton( UserRepositoryImp(diInspection.get()), ); diInspection.registerSingleton( InspectionRemoteDataSourceImp(dioRemote), ); diInspection.registerSingleton( InspectionRepositoryImp(remoteDataSource: diInspection.get()), ); diInspection.registerSingleton(ImagePicker()); } Future removeInspectionDI() async { eLog("removeInspectionDI"); await diInspection.resetScope(); /* if (diInspection.isRegistered()) { diInspection.unregister(); } if (diInspection.isRegistered()) { diInspection.unregister(); } if (diInspection.isRegistered()) { diInspection.unregister(); } if (diInspection.isRegistered()) { diInspection.unregister(); } if (diInspection.isRegistered()) { diInspection.unregister(); } if (diInspection.isRegistered()) { diInspection.unregister(); } if (diInspection.isRegistered()) { diInspection.unregister(); } if (diInspection.isRegistered()) { diInspection.unregister(); } if (diInspection.isRegistered()) { diInspection.unregister(); } if (diInspection.isRegistered()) { diInspection.unregister(); }*/ }