setup method

void setup()

Implementation

void setup() {
  // api
  coreLocator.registerFactory(
    () => UserApi(
      settings:
          coreLocator.get<PreferencesSettings>(instanceName: 'preferences'),
    ),
  );

  // data source
  coreLocator.registerFactory<UserRemoteDataSource>(
    () => UserRemoteDataSourceImpl(
      api: coreLocator.get<UserApi>(),
    ),
  );

  // repository
  coreLocator.registerFactory<UserRepository>(
    () => UserRepositoryImpl(
      remoteDataSource: coreLocator.get<UserRemoteDataSource>(),
      settings:
          coreLocator.get<PreferencesSettings>(instanceName: 'preferences'),
    ),
  );

  // use cases
  coreLocator.registerFactory(
    () => CreateUserUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetRolesFromUserIdUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetUserByIdUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetUsersByParamsUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetUsersDisponiveisUseCase(
      repository: coreLocator.get(),
    ),
  );
  coreLocator.registerFactory(
    () => UpdateUserUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => SetUserUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetUserUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetRoutesFromUserUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => RestorePasswordUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => UpdatePasswordUserUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => UploadPhotoUserUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => DeletePhotoUserUseCase(
      repository: coreLocator.get<UserRepository>(),
    ),
  );
  coreLocator.registerFactory(
      () => UserUpdateSettingsUseCase(repository: coreLocator.get()));

  // view models
  coreLocator.registerFactory(
    () => UserFastCadastroViewModel(
      getUsersByParams: coreLocator.get(),
      createUser: coreLocator.get(),
    ),
  );
}