mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-06-23 06:14:11 -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,
|
VENMO,
|
||||||
PAYSAFE,
|
PAYSAFE,
|
||||||
WECHAT_PAY,
|
WECHAT_PAY,
|
||||||
ALI_PAY;
|
ALI_PAY,
|
||||||
|
SWISH;
|
||||||
|
|
||||||
public static PaymentAccountForm.FormId fromProto(protobuf.PaymentAccountForm.FormId formId) {
|
public static PaymentAccountForm.FormId fromProto(protobuf.PaymentAccountForm.FormId formId) {
|
||||||
return ProtoUtil.enumFromProto(PaymentAccountForm.FormId.class, formId.name());
|
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"));
|
field.setLabel(Res.get("payment.swift.swiftCode.intermediary"));
|
||||||
break;
|
break;
|
||||||
case MOBILE_NR:
|
case MOBILE_NR:
|
||||||
throw new IllegalArgumentException("Not implemented");
|
field.setComponent(PaymentAccountFormField.Component.TEXT);
|
||||||
|
field.setLabel(Res.get("payment.mobile"));
|
||||||
|
break;
|
||||||
case NATIONAL_ACCOUNT_ID:
|
case NATIONAL_ACCOUNT_ID:
|
||||||
throw new IllegalArgumentException("Not implemented");
|
throw new IllegalArgumentException("Not implemented");
|
||||||
case PAYID:
|
case PAYID:
|
||||||
|
|
|
@ -17,12 +17,14 @@
|
||||||
|
|
||||||
package haveno.core.payment;
|
package haveno.core.payment;
|
||||||
|
|
||||||
|
import haveno.core.api.model.PaymentAccountForm;
|
||||||
import haveno.core.api.model.PaymentAccountFormField;
|
import haveno.core.api.model.PaymentAccountFormField;
|
||||||
import haveno.core.locale.TraditionalCurrency;
|
import haveno.core.locale.TraditionalCurrency;
|
||||||
import haveno.core.locale.TradeCurrency;
|
import haveno.core.locale.TradeCurrency;
|
||||||
import haveno.core.payment.payload.PaymentAccountPayload;
|
import haveno.core.payment.payload.PaymentAccountPayload;
|
||||||
import haveno.core.payment.payload.PaymentMethod;
|
import haveno.core.payment.payload.PaymentMethod;
|
||||||
import haveno.core.payment.payload.SwishAccountPayload;
|
import haveno.core.payment.payload.SwishAccountPayload;
|
||||||
|
import haveno.core.payment.validation.SwishValidator;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NonNull;
|
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"));
|
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() {
|
public SwishAccount() {
|
||||||
super(PaymentMethod.SWISH);
|
super(PaymentMethod.SWISH);
|
||||||
setSingleTradeCurrency(SUPPORTED_CURRENCIES.get(0));
|
setSingleTradeCurrency(SUPPORTED_CURRENCIES.get(0));
|
||||||
|
@ -50,7 +59,7 @@ public final class SwishAccount extends PaymentAccount {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NonNull List<PaymentAccountFormField.FieldId> getInputFieldIds() {
|
public @NonNull List<PaymentAccountFormField.FieldId> getInputFieldIds() {
|
||||||
throw new RuntimeException("Not implemented");
|
return INPUT_FIELD_IDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMobileNr(String mobileNr) {
|
public void setMobileNr(String mobileNr) {
|
||||||
|
@ -68,4 +77,16 @@ public final class SwishAccount extends PaymentAccount {
|
||||||
public String getHolderName() {
|
public String getHolderName() {
|
||||||
return ((SwishAccountPayload) paymentAccountPayload).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,
|
VENMO_ID,
|
||||||
PAYSAFE_ID,
|
PAYSAFE_ID,
|
||||||
WECHAT_PAY_ID,
|
WECHAT_PAY_ID,
|
||||||
ALI_PAY_ID);
|
ALI_PAY_ID,
|
||||||
|
SWISH_ID);
|
||||||
return paymentMethods.stream().filter(paymentMethod -> paymentMethodIds.contains(paymentMethod.getId())).collect(Collectors.toList());
|
return paymentMethods.stream().filter(paymentMethod -> paymentMethodIds.contains(paymentMethod.getId())).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1905,6 +1905,7 @@ message PaymentAccountForm {
|
||||||
PAYSAFE = 19;
|
PAYSAFE = 19;
|
||||||
WECHAT_PAY = 20;
|
WECHAT_PAY = 20;
|
||||||
ALI_PAY = 21;
|
ALI_PAY = 21;
|
||||||
|
SWISH = 22;
|
||||||
}
|
}
|
||||||
FormId id = 1;
|
FormId id = 1;
|
||||||
repeated PaymentAccountFormField fields = 2;
|
repeated PaymentAccountFormField fields = 2;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue