wrapperFactory function

Future<void> wrapperFactory(
  1. BuildContext _context, {
  2. required PropagaPayment payment,
  3. required PropagaSDK propagaSDK,
})

Implementation

Future<void> wrapperFactory(
  BuildContext _context, {
  required PropagaPayment payment,
  required PropagaSDK propagaSDK,
}) async {
  final accountResponse = await propagaSDK
      .getCornerStoreService()
      .getExternalAccount(payment.cornerStoreId);

  if (accountResponse.status == 'in-waiting-list') {
    return payment.onErrorTransaction(PropagaError(
        errorCode: 'USER_IN_WAITING_LIST',
        errorMessage: 'USER_IN_WAITING_LIST'));
  }

  final simulation = await propagaSDK
      .getTransactionService()
      .createSimulation(accountResponse.cornerStoreId, payment.totalAmount);

  final customizerOptions =
      await propagaSDK.getWholesalerService().getCustomizerOptions();

  Navigator.of(_context).push(createRoute(
      MultiProvider(
        providers: createProviders(
            propagaSDK: propagaSDK,
            accountResponse: accountResponse,
            simulation: simulation,
            customizerOptions: customizerOptions,
            payment: payment),
        builder: (context, _) => PropagaFactory(
          buildContext: _context,
        ),
      ),
      customizerOptions.logo));
}