onCheckoutEvent method

  1. @override
void onCheckoutEvent(
  1. CheckoutEventMessage event
)

Implementation

@override
void onCheckoutEvent(CheckoutEventMessage event) {
  final type = event.type;
  switch (type) {
    case 'completed':
      final fields = <String, String>{
        for (final entry in (event.data ?? {}).entries)
          if (entry.key != null &&
              entry.key!.isNotEmpty &&
              entry.value != null &&
              entry.value!.isNotEmpty)
            entry.key!: entry.value!,
      };
      _events.add(BanxaCheckoutCompleted.fromFields(fields));
    case 'failed':
      _events.add(
        BanxaCheckoutFailed(event.errorMessage ?? 'Checkout failed'),
      );
    case 'dismissed':
      _events.add(const BanxaCheckoutDismissed());
    default:
      _events.add(
        const BanxaCheckoutFailed('Unknown checkout event type'),
      );
  }
}