fixed payment methods serialization deserialization
This commit is contained in:
@@ -71,7 +71,6 @@ class PaymentMethodsProvider extends GenericProvider<PaymentMethod> {
|
||||
).toDTO().toJson(),
|
||||
);
|
||||
|
||||
|
||||
Future<void> makeMain(PaymentMethod method) {
|
||||
// TODO: create separate backend method to manage main payment method
|
||||
final updates = <Future<void>>[];
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:collection/collection.dart';
|
||||
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:pshared/models/payment/methods/data.dart';
|
||||
@@ -14,11 +16,11 @@ import 'package:pshared/provider/recipient/provider.dart';
|
||||
import 'package:pweb/pages/address_book/form/view.dart';
|
||||
// import 'package:pweb/services/amplitude.dart';
|
||||
import 'package:pweb/utils/error/snackbar.dart';
|
||||
|
||||
import 'package:pweb/generated/i18n/app_localizations.dart';
|
||||
import 'package:pweb/utils/payment/label.dart';
|
||||
import 'package:pweb/utils/snackbar.dart';
|
||||
|
||||
import 'package:pweb/generated/i18n/app_localizations.dart';
|
||||
|
||||
|
||||
class AdressBookRecipientForm extends StatefulWidget {
|
||||
final Recipient? recipient;
|
||||
@@ -71,18 +73,31 @@ class _AdressBookRecipientFormState extends State<AdressBookRecipientForm> {
|
||||
Future<Recipient?> _doSave() async {
|
||||
final recipients = context.read<RecipientsProvider>();
|
||||
final methods = context.read<PaymentMethodsProvider>();
|
||||
final recipient = await recipients.create(
|
||||
name: _nameCtrl.text,
|
||||
email: _emailCtrl.text,
|
||||
);
|
||||
if (methods.currentObject == null) return recipient;
|
||||
final data = methods.currentObject!;
|
||||
await methods.create(
|
||||
reacipientRef: recipient.id,
|
||||
name: getPaymentTypeLabel(context, data.type),
|
||||
data: data.data,
|
||||
);
|
||||
return recipient;
|
||||
final recipient = widget.recipient == null
|
||||
? await recipients.create(
|
||||
name: _nameCtrl.text,
|
||||
email: _emailCtrl.text,
|
||||
)
|
||||
: widget.recipient!;
|
||||
for (final type in _methods.keys) {
|
||||
final data = _methods[type]!;
|
||||
final exising = methods.methods.firstWhereOrNull((m) => m.type == type);
|
||||
if (exising != null) {
|
||||
await methods.updateMethod(exising.copyWith(data: data));
|
||||
} else {
|
||||
await methods.create(
|
||||
reacipientRef: recipient.id,
|
||||
name: getPaymentTypeLabel(context, type),
|
||||
data: data,
|
||||
);
|
||||
}
|
||||
await methods.create(
|
||||
reacipientRef: recipient.id,
|
||||
name: getPaymentTypeLabel(context, data.type),
|
||||
data: data,
|
||||
);
|
||||
return recipient;
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: Change when registration is ready
|
||||
|
||||
Reference in New Issue
Block a user