setup function

void setup({
  1. SdkCallbacks? callbacks,
})

Implementation

void setup({SdkCallbacks? callbacks}) {
  if (callbacks != null) {
    getIt.registerSingleton<SdkCallbacks>(callbacks);
  }
  getIt.registerLazySingleton(() => NetworkRequester());
  getIt.registerFactory<CommonMethod>(() => CommonMethod());

  ///App
  getIt.registerFactory<AppRepository>(
    () => AppRepositoryImpl(networkRequester: getIt<NetworkRequester>()),
  );
  getIt.registerFactory(() => AppBloc(repository: getIt<AppRepository>()));

  ///Credit
  getIt.registerFactory<CreditOnboardingRepository>(
    () => CreditOnboardingRepositoryImpl(
      networkRequester: getIt<NetworkRequester>(),
    ),
  );
  getIt.registerFactory(
    () => CreditOnboardingBloc(
      repository: getIt<CreditOnboardingRepository>(),
      commonMethod: getIt<CommonMethod>(),
    ),
  );

  ///Emi
  getIt.registerFactory(
    () => EmiBloc(repository: getIt<CreditOnboardingRepository>()),
  );

  ///Digio Service
  getIt.registerFactory<DigioService>(() => DigioService());

  ///Kyc Detail
  getIt.registerFactory(
    () => KycBloc(
      repository: getIt<CreditOnboardingRepository>(),
      digioService: getIt<DigioService>(),
    ),
  );

  ///Bank Detail
  getIt.registerFactory(
    () => BankDetailBloc(repository: getIt<CreditOnboardingRepository>()),
  );

  ///Easebuzz Payment Service
  getIt.registerLazySingleton(() => EaseBuzzPaymentService());

  ///Cashfree Payment Service
  getIt.registerLazySingleton(() => CashfreePaymentService());

  ///Razorpay Payment Service
  getIt.registerLazySingleton(() => RazorpayPaymentService());

  ///Down Payment
  getIt.registerFactory(
    () => DownPaymentBloc(
      repository: getIt<CreditOnboardingRepository>(),
      cashfreePaymentService: getIt<CashfreePaymentService>(),
      easeBuzzPaymentService: getIt<EaseBuzzPaymentService>(),
      razorpayPaymentService: getIt<RazorpayPaymentService>(),
    ),
  );
}