setDefault method
If multiple payment information is set, set payment
to the default payment information.
複数の支払い情報が設定されている場合payment
をデフォルトの支払い情報に設定します。
Implementation
Future<void> setDefault({
required DocumentBase<StripePaymentModel> payment,
}) async {
if (_completer != null) {
return _completer!.future;
}
_completer = Completer<void>();
try {
final value = payment.value;
if (value == null) {
throw Exception(
"Payment information is empty. Please run [create] method.",
);
}
final functionsAdapter =
StripePurchaseMasamuneAdapter.primary.functionsAdapter ??
FunctionsAdapter.primary;
await functionsAdapter.execute(
StripeSetCustomerDefaultPaymentAction(
userId: userId,
paymentId: value.paymentId,
),
);
_completer?.complete();
_completer = null;
notifyListeners();
} catch (e) {
_completer?.completeError(e);
_completer = null;
rethrow;
} finally {
_completer?.complete();
_completer = null;
}
}