Skip to content

Commit

Permalink
Merge pull request #343 from Mangopay/feature/add-transaction-details…
Browse files Browse the repository at this point in the history
…-bankwire-payin

Adds TransactionDetails to bankwire pay-ins retrieval
  • Loading branch information
alexxmattei authored Dec 17, 2024
2 parents fce4cf3 + cdc1b94 commit 8ca045e
Show file tree
Hide file tree
Showing 7 changed files with 209 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ public PayIn deserialize(JsonElement json, Type typeOfT, JsonDeserializationCont
payInDetails.setBankAccount((BankAccount) context.deserialize(object.get("BankAccount"), BankAccount.class));
if (object.has("WireReference") && !object.get("WireReference").isJsonNull())
payInDetails.setWireReference(object.get("WireReference").getAsString());
if (object.has("TransactionDetails") && !object.get("TransactionDetails").isJsonNull()) {
Type listType = new TypeToken<ArrayList<PayInTransactionDetailsBankWire>>() {
}.getType();
payInDetails.setTransactionDetails((List<PayInTransactionDetailsBankWire>) context.deserialize(object.get("TransactionDetails"), listType));
}

payIn.setPaymentDetails(payInDetails);
break;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.mangopay.core.enumerations;

public class PayInReferences {

private String type;

private String value;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.mangopay.core.interfaces;

/**
* Marker interface for classes with transaction details
* Currently needed only by BankWire
*/
public interface PayInTransactionDetails { }
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public JsonElement serialize(PayIn src, Type typeOfSrc, JsonSerializationContext
object.add("DeclaredFees", context.serialize(((PayInPaymentDetailsBankWire) src.getPaymentDetails()).getDeclaredFees()));
object.add("BankAccount", context.serialize(((PayInPaymentDetailsBankWire) src.getPaymentDetails()).getBankAccount()));
object.add("WireReference", context.serialize(((PayInPaymentDetailsBankWire) src.getPaymentDetails()).getWireReference()));
object.add("TransactionDetails", context.serialize(((PayInPaymentDetailsBankWire) src.getPaymentDetails()).getTransactionDetails()));
break;
case "PayInPaymentDetailsCard":
object.add("CardType", context.serialize(((PayInPaymentDetailsCard) src.getPaymentDetails()).getCardType()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
Expand Down Expand Up @@ -39,6 +40,12 @@ public class PayInPaymentDetailsBankWire extends Dto implements PayInPaymentDeta
@SerializedName("WireReference")
private String wireReference;

/**
* Transaction details for BankWire Pay-ins retrieval.
*/
@SerializedName("TransactionDetails")
private List<PayInTransactionDetailsBankWire> transactionDetails;

public PayInPaymentDetailsBankWire(Money declaredDebitedFunds, Money declaredFees, BankAccount bankAccount, String wireReference) {
this.declaredDebitedFunds = declaredDebitedFunds;
this.declaredFees = declaredFees;
Expand Down Expand Up @@ -81,6 +88,14 @@ public void setWireReference(String wireReference) {
this.wireReference = wireReference;
}

public List<PayInTransactionDetailsBankWire> getTransactionDetails() {
return transactionDetails;
}

public void setTransactionDetails(List<PayInTransactionDetailsBankWire> transactionDetails) {
this.transactionDetails = transactionDetails;
}

/**
* Gets map which property is an object and what type of object.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
package com.mangopay.entities.subentities;

import com.google.gson.annotations.SerializedName;
import com.mangopay.core.Dto;
import com.mangopay.core.enumerations.PayInReferences;
import com.mangopay.core.interfaces.PayInTransactionDetails;

import java.util.List;

/**
* Class representing the BankWire type for mean of payment in PayIn entity.
*/
public class PayInTransactionDetailsBankWire extends Dto implements PayInTransactionDetails {

@SerializedName("BankTransactionDomainCode")
private String bankTransactionDomainCode;

@SerializedName("BankTransactionDomainFamilyCode")
private String bankTransactionDomainFamilyCode;

@SerializedName("BankTransactionDomainSubFamilyCode")
private String bankTransactionDomainSubFamilyCode;

@SerializedName("References")
private List<PayInReferences> references;

@SerializedName("DebtorName")
private String debtorName;

@SerializedName("DebtorAccount")
private String debtorAccount;

@SerializedName("DebtorAgent")
private String debtorAgent;

@SerializedName("DebtorAddressLine1")
private String debtorAddressLine1;

@SerializedName("DebtorAddressLine2")
private String debtorAddressLine2;

@SerializedName("DebtorAddressLine3")
private String debtorAddressLine3;

@SerializedName("RemittanceInformationLine1")
private String remittanceInformationLine1;

@SerializedName("RemittanceInformationLine2")
private String remittanceInformationLine2;

@SerializedName("RemittanceInformationLine3")
private String remittanceInformationLine3;

@SerializedName("RemittanceInformationLine4")
private String remittanceInformationLine4;

public String getBankTransactionDomainCode() {
return bankTransactionDomainCode;
}

public void setBankTransactionDomainCode(String bankTransactionDomainCode) {
this.bankTransactionDomainCode = bankTransactionDomainCode;
}

public String getBankTransactionDomainFamilyCode() {
return bankTransactionDomainFamilyCode;
}

public void setBankTransactionDomainFamilyCode(String bankTransactionDomainFamilyCode) {
this.bankTransactionDomainFamilyCode = bankTransactionDomainFamilyCode;
}

public String getBankTransactionDomainSubFamilyCode() {
return bankTransactionDomainSubFamilyCode;
}

public void setBankTransactionDomainSubFamilyCode(String bankTransactionDomainSubFamilyCode) {
this.bankTransactionDomainSubFamilyCode = bankTransactionDomainSubFamilyCode;
}

public List<PayInReferences> getReferences() {
return references;
}

public void setReferences(List<PayInReferences> references) {
this.references = references;
}

public String getDebtorName() {
return debtorName;
}

public void setDebtorName(String debtorName) {
this.debtorName = debtorName;
}

public String getDebtorAccount() {
return debtorAccount;
}

public void setDebtorAccount(String debtorAccount) {
this.debtorAccount = debtorAccount;
}

public String getDebtorAgent() {
return debtorAgent;
}

public void setDebtorAgent(String debtorAgent) {
this.debtorAgent = debtorAgent;
}

public String getDebtorAddressLine1() {
return debtorAddressLine1;
}

public void setDebtorAddressLine1(String debtorAddressLine1) {
this.debtorAddressLine1 = debtorAddressLine1;
}

public String getDebtorAddressLine2() {
return debtorAddressLine2;
}

public void setDebtorAddressLine2(String debtorAddressLine2) {
this.debtorAddressLine2 = debtorAddressLine2;
}

public String getDebtorAddressLine3() {
return debtorAddressLine3;
}

public void setDebtorAddressLine3(String debtorAddressLine3) {
this.debtorAddressLine3 = debtorAddressLine3;
}

public String getRemittanceInformationLine1() {
return remittanceInformationLine1;
}

public void setRemittanceInformationLine1(String remittanceInformationLine1) {
this.remittanceInformationLine1 = remittanceInformationLine1;
}

public String getRemittanceInformationLine2() {
return remittanceInformationLine2;
}

public void setRemittanceInformationLine2(String remittanceInformationLine2) {
this.remittanceInformationLine2 = remittanceInformationLine2;
}

public String getRemittanceInformationLine3() {
return remittanceInformationLine3;
}

public void setRemittanceInformationLine3(String remittanceInformationLine3) {
this.remittanceInformationLine3 = remittanceInformationLine3;
}

public String getRemittanceInformationLine4() {
return remittanceInformationLine4;
}

public void setRemittanceInformationLine4(String remittanceInformationLine4) {
this.remittanceInformationLine4 = remittanceInformationLine4;
}

public PayInTransactionDetailsBankWire() {

}
}
2 changes: 1 addition & 1 deletion src/main/resources/com/mangopay/core/mangopay.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#Wed Dec 11 22:22:55 EET 2024
#Tue Dec 17 15:16:35 EET 2024
version=2.39.0

0 comments on commit 8ca045e

Please sign in to comment.