setupMotocodeLocator function

Future<void> setupMotocodeLocator({
  1. required String baseUrl,
  2. required StackedLocator locator,
  3. required Dio dio,
  4. String? environment,
  5. EnvironmentFilter? environmentFilter,
  6. FirebaseCrashlytics? crashlytics,
})

Register all the models and services with the locator Sets the base url, sample https://localhost:7000

void main() async {
  ...

  await setupLocator();
  await setupMotocodeLocator(
    baseUrl: 'https://localhost:7000',
    locator: StackedLocator.instance,
    dio: Dio(),
    crashlytics: FirebaseCrashlytics.instance,
         );
  ....
}

Implementation

Future<void> setupMotocodeLocator({
  required String baseUrl,
  required StackedLocator locator,
  required Dio dio,
  String? environment,
  EnvironmentFilter? environmentFilter,
  FirebaseCrashlytics? crashlytics,
}) async {
  baseUrl = '$baseUrl/api';

  // Register dependencies
  locator.registerLazySingleton(() => ApiClient(dio, baseUrl: baseUrl));

  final apiClient = locator<ApiClient>();

  locator.registerLazySingleton(
      () => AccountService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(() =>
      AuthenticationService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(() =>
      BusinessUnitsService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => DepartmentsService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => DepotTypesService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => DepotsService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => EnrollmentsService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => PositionsService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => QrCodesService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => RolesService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(() =>
      ScannedQrCodesService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => StatusesService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => UsersService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => OrdersService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => StickerService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => AreaService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => ReportService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(
      () => TagsService(apiClient: apiClient, crashlytics: crashlytics));
  locator.registerLazySingleton(() =>
      ScannedQrcodeTagService(apiClient: apiClient, crashlytics: crashlytics));
}