getCustomerDetails method
tries to fetch customer details using id
, if not found, new customer will be created using id
as an email address to fetch with it next time.
Implementation
Future<void> getCustomerDetails(String id) async {
try {
final customer = await checkout.getCustomerDetails(id);
final Instrument? defaultInstrument =
await checkout.getDefaultInstrument(customer.instruments);
if (mounted) {
state = AsyncValue.data(
customer.copyWith(defaultInstrument: defaultInstrument, name: name),
);
}
} catch (e) {
//not found
final customer = Customer(
id: "",
email: id,
name: name,
instruments: [],
);
final customerId = await checkout.createCustomer(customer);
if (mounted) state = AsyncValue.data(customer.copyWith(id: customerId));
}
}