mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-06-22 22:04:22 -04:00
support swish payment account over grpc api
This commit is contained in:
parent
fdf2115f34
commit
a75e61314a
5 changed files with 30 additions and 4 deletions
|
@ -80,7 +80,8 @@ public final class PaymentAccountForm implements PersistablePayload {
|
|||
VENMO,
|
||||
PAYSAFE,
|
||||
WECHAT_PAY,
|
||||
ALI_PAY;
|
||||
ALI_PAY,
|
||||
SWISH;
|
||||
|
||||
public static PaymentAccountForm.FormId fromProto(protobuf.PaymentAccountForm.FormId formId) {
|
||||
return ProtoUtil.enumFromProto(PaymentAccountForm.FormId.class, formId.name());
|
||||
|
|
|
@ -755,7 +755,9 @@ public abstract class PaymentAccount implements PersistablePayload {
|
|||
field.setLabel(Res.get("payment.swift.swiftCode.intermediary"));
|
||||
break;
|
||||
case MOBILE_NR:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
field.setComponent(PaymentAccountFormField.Component.TEXT);
|
||||
field.setLabel(Res.get("payment.mobile"));
|
||||
break;
|
||||
case NATIONAL_ACCOUNT_ID:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
case PAYID:
|
||||
|
|
|
@ -17,12 +17,14 @@
|
|||
|
||||
package haveno.core.payment;
|
||||
|
||||
import haveno.core.api.model.PaymentAccountForm;
|
||||
import haveno.core.api.model.PaymentAccountFormField;
|
||||
import haveno.core.locale.TraditionalCurrency;
|
||||
import haveno.core.locale.TradeCurrency;
|
||||
import haveno.core.payment.payload.PaymentAccountPayload;
|
||||
import haveno.core.payment.payload.PaymentMethod;
|
||||
import haveno.core.payment.payload.SwishAccountPayload;
|
||||
import haveno.core.payment.validation.SwishValidator;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NonNull;
|
||||
|
||||
|
@ -33,6 +35,13 @@ public final class SwishAccount extends PaymentAccount {
|
|||
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = List.of(new TraditionalCurrency("SEK"));
|
||||
|
||||
private static final List<PaymentAccountFormField.FieldId> INPUT_FIELD_IDS = List.of(
|
||||
PaymentAccountFormField.FieldId.ACCOUNT_NAME,
|
||||
PaymentAccountFormField.FieldId.MOBILE_NR,
|
||||
PaymentAccountFormField.FieldId.HOLDER_NAME,
|
||||
PaymentAccountFormField.FieldId.SALT
|
||||
);
|
||||
|
||||
public SwishAccount() {
|
||||
super(PaymentMethod.SWISH);
|
||||
setSingleTradeCurrency(SUPPORTED_CURRENCIES.get(0));
|
||||
|
@ -50,7 +59,7 @@ public final class SwishAccount extends PaymentAccount {
|
|||
|
||||
@Override
|
||||
public @NonNull List<PaymentAccountFormField.FieldId> getInputFieldIds() {
|
||||
throw new RuntimeException("Not implemented");
|
||||
return INPUT_FIELD_IDS;
|
||||
}
|
||||
|
||||
public void setMobileNr(String mobileNr) {
|
||||
|
@ -68,4 +77,16 @@ public final class SwishAccount extends PaymentAccount {
|
|||
public String getHolderName() {
|
||||
return ((SwishAccountPayload) paymentAccountPayload).getHolderName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validateFormField(PaymentAccountForm form, PaymentAccountFormField.FieldId fieldId, String value) {
|
||||
switch (fieldId) {
|
||||
case MOBILE_NR:
|
||||
processValidationResult(new SwishValidator().validate(value));
|
||||
break;
|
||||
default:
|
||||
super.validateFormField(form, fieldId, value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -371,7 +371,8 @@ public final class PaymentMethod implements PersistablePayload, Comparable<Payme
|
|||
VENMO_ID,
|
||||
PAYSAFE_ID,
|
||||
WECHAT_PAY_ID,
|
||||
ALI_PAY_ID);
|
||||
ALI_PAY_ID,
|
||||
SWISH_ID);
|
||||
return paymentMethods.stream().filter(paymentMethod -> paymentMethodIds.contains(paymentMethod.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
|
|
@ -1905,6 +1905,7 @@ message PaymentAccountForm {
|
|||
PAYSAFE = 19;
|
||||
WECHAT_PAY = 20;
|
||||
ALI_PAY = 21;
|
||||
SWISH = 22;
|
||||
}
|
||||
FormId id = 1;
|
||||
repeated PaymentAccountFormField fields = 2;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue