setup method

void setup()

Inicia dependĂȘncias do pacote de DomĂ­nio

Implementation

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

  // data source
  coreLocator.registerFactory<DomainRemoteDataSource>(
    () => DomainRemoteDataSourceImpl(
      api: coreLocator.get<DomainApi>(),
    ),
  );

  // repository
  coreLocator.registerFactory<DomainRepository>(
    () => DomainRepositoryImpl(
      remoteDataSource: coreLocator.get<DomainRemoteDataSource>(),
      settings:
          coreLocator.get<PreferencesSettings>(instanceName: 'preferences'),
    ),
  );

  // use cases
  coreLocator.registerFactory(
    () => CreateDomainUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => SearchDomainByNameUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetDomainsByParamsUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetDomainByIdUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => UpdateDomainUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetDomainFromSettingsUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => SetDomainUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetDomainFromSettingsUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => RegisterUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => DeleteLogoDomainUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => UploadLogoDomainUseCase(
      repository: coreLocator.get<DomainRepository>(),
    ),
  );

  // view models
  coreLocator.registerFactory(
    () => ListDomainViewModel(
      getDomains: coreLocator.get<GetDomainsByParamsUseCase>(),
      updateSelected: coreLocator.get<UpdateSelectedItemUsecase>(),
      getSelectedItems: coreLocator.get<GetSelectedItemsUseCase>(),
    ),
  );
}