validate form fields on create payment account from form

This commit is contained in:
woodser 2024-11-05 10:34:42 -05:00
parent 485746381c
commit aee0c1c0b2

View File

@ -64,9 +64,14 @@ class CorePaymentAccountsService {
}
PaymentAccount createPaymentAccount(PaymentAccountForm form) {
validateFormFields(form);
PaymentAccount paymentAccount = form.toPaymentAccount();
setSelectedTradeCurrency(paymentAccount); // TODO: selected trade currency is function of offer, not payment account payload
verifyPaymentAccountHasRequiredFields(paymentAccount);
if (paymentAccount instanceof CryptoCurrencyAccount) {
CryptoCurrencyAccount cryptoAccount = (CryptoCurrencyAccount) paymentAccount;
verifyCryptoCurrencyAddress(cryptoAccount.getSingleTradeCurrency().getCode(), cryptoAccount.getAddress());
}
user.addPaymentAccountIfNotExists(paymentAccount);
accountAgeWitnessService.publishMyAccountAgeWitness(paymentAccount.getPaymentAccountPayload());
log.info("Saved payment account with id {} and payment method {}.",
@ -166,6 +171,12 @@ class CorePaymentAccountsService {
.collect(Collectors.toList());
}
private void validateFormFields(PaymentAccountForm form) {
for (PaymentAccountFormField field : form.getFields()) {
validateFormField(form, field.getId(), field.getValue());
}
}
void validateFormField(PaymentAccountForm form, PaymentAccountFormField.FieldId fieldId, String value) {
// get payment method id