From e785201bbb5b616f9660ef2b97973760e9f18191 Mon Sep 17 00:00:00 2001 From: Paul Hristea Date: Wed, 2 Aug 2017 22:28:37 +0300 Subject: [PATCH 1/4] Implemented access to the endpoint for creating a wallet report. --- src/main/java/com/mangopay/core/APIs/ApiBase.java | 9 +++++---- src/main/java/com/mangopay/core/APIs/ReportApi.java | 2 ++ .../core/APIs/implementation/ReportApiImpl.java | 7 ++++++- .../resources/com/mangopay/core/mangopay.properties | 4 ++-- src/test/java/com/mangopay/core/ReportApiImplTest.java | 10 ++++++++++ 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/mangopay/core/APIs/ApiBase.java b/src/main/java/com/mangopay/core/APIs/ApiBase.java index fefa176b..05ae73fb 100644 --- a/src/main/java/com/mangopay/core/APIs/ApiBase.java +++ b/src/main/java/com/mangopay/core/APIs/ApiBase.java @@ -136,7 +136,7 @@ protected MangoPayApi getRoot() { put("disputes_document_get_for_dispute", new String[] { "/disputes/%s/documents", RequestType.GET.toString() }); put("disputes_document_get_for_client", new String[] { "/dispute-documents", RequestType.GET.toString() }); put("disputes_repudiation_get", new String[] { "/repudiations/%s", RequestType.GET.toString() }); - put("disputes_repudiation_create_settlement", new String[] { "/repudiations/%s/settlementtransfer", RequestType.POST.toString() }); + put("disputes_repudiation_create_settlement", new String[] { "/repudiations/%s/settlementtransfer", RequestType.POST.toString() }); put("idempotency_response_get", new String[] { "/responses/%s", RequestType.GET.toString() }); @@ -150,11 +150,12 @@ protected MangoPayApi getRoot() { put("reports_request", new String[]{ "/reports/%s", RequestType.POST.toString() }); put("reports_get_all", new String[]{ "/reports", RequestType.GET.toString() }); put("reports_get", new String[]{ "/reports/%s", RequestType.GET.toString() }); - + + put("reports_wallets_create", new String[] { "/reports/wallets", RequestType.POST.toString() }); put("banking_alias_create_iban", new String[] { "/wallets/%s/bankingaliases/iban", RequestType.POST.toString() }); - put("banking_alias_deactivate", new String[] { "/bankingaliases/%s", RequestType.PUT.toString()}); - put("banking_alias_get", new String[]{ "/bankingaliases/%s", RequestType.GET.toString() }); + put("banking_alias_deactivate", new String[] { "/bankingaliases/%s", RequestType.PUT.toString() }); + put("banking_alias_get", new String[] { "/bankingaliases/%s", RequestType.GET.toString() }); put("banking_aliases_get_for_wallet", new String[] { "/wallets/%s/bankingaliases", RequestType.GET.toString() }); }}; diff --git a/src/main/java/com/mangopay/core/APIs/ReportApi.java b/src/main/java/com/mangopay/core/APIs/ReportApi.java index f07c41ee..0a805fc3 100644 --- a/src/main/java/com/mangopay/core/APIs/ReportApi.java +++ b/src/main/java/com/mangopay/core/APIs/ReportApi.java @@ -15,6 +15,8 @@ public interface ReportApi { ReportRequest create(String idempotencyKey, ReportRequest reportRequest) throws Exception; + ReportRequest createWalletReport(ReportRequest reportRequest) throws Exception; + ReportRequest get(String reportId) throws Exception; List getAll(Pagination pagination, FilterReportsList filters, Sorting sort) throws Exception; diff --git a/src/main/java/com/mangopay/core/APIs/implementation/ReportApiImpl.java b/src/main/java/com/mangopay/core/APIs/implementation/ReportApiImpl.java index 6399523a..aaf511f1 100644 --- a/src/main/java/com/mangopay/core/APIs/implementation/ReportApiImpl.java +++ b/src/main/java/com/mangopay/core/APIs/implementation/ReportApiImpl.java @@ -35,7 +35,12 @@ public ReportRequest create(String idempotencyKey, ReportRequest reportRequest) //return this.createObject(ReportRequestTransport.class, idempotencyKey, "MethodKey.ReportRequest", reportRequestTransport, reportRequestTransport.ReportType.ToString()).GetBusinessObject(); return this.createObject(ReportRequest.class, idempotencyKey, "reports_request", reportRequest, reportRequest.getReportType().toString()); } - + + @Override + public ReportRequest createWalletReport(ReportRequest reportRequest) throws Exception { + return this.createObject(ReportRequest.class, null, "reports_wallets_create", reportRequest); + } + @Override public ReportRequest get(String reportId) throws Exception { return this.getObject(ReportRequest.class, "reports_get", reportId); diff --git a/src/main/resources/com/mangopay/core/mangopay.properties b/src/main/resources/com/mangopay/core/mangopay.properties index 8037f8e6..3ec64745 100644 --- a/src/main/resources/com/mangopay/core/mangopay.properties +++ b/src/main/resources/com/mangopay/core/mangopay.properties @@ -1,2 +1,2 @@ -#Sat Jun 24 15:23:21 EEST 2017 -version=1.3.1 +#Wed Aug 02 18:42:47 EEST 2017 +version=2.0.0 diff --git a/src/test/java/com/mangopay/core/ReportApiImplTest.java b/src/test/java/com/mangopay/core/ReportApiImplTest.java index 93b99875..8040f202 100644 --- a/src/test/java/com/mangopay/core/ReportApiImplTest.java +++ b/src/test/java/com/mangopay/core/ReportApiImplTest.java @@ -46,6 +46,16 @@ public void createFilteredReport() throws Exception { assertTrue(report.getId().length() > 0); } + @Test + public void createWalletReport() throws Exception { + ReportRequest reportRequest = new ReportRequest(); + + ReportRequest report = this.api.getReportApi().createWalletReport(reportRequest); + + assertNotNull(report); + assertEquals(report.getReportType(), ReportType.WALLETS); + } + @Test public void getReport() throws Exception { ReportRequest report = this.getJohnsReport(); From 74fa58810904e7dd1d76a61dbd11fc2222680a88 Mon Sep 17 00:00:00 2001 From: Paul Hristea Date: Thu, 3 Aug 2017 12:56:47 +0300 Subject: [PATCH 2/4] Implemented and tested wallets report creation with filters. --- .../java/com/mangopay/core/FilterReports.java | 108 +++++++++++++++++- .../com/mangopay/core/mangopay.properties | 2 +- .../com/mangopay/core/ReportApiImplTest.java | 70 ++++++++++-- 3 files changed, 161 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/mangopay/core/FilterReports.java b/src/main/java/com/mangopay/core/FilterReports.java index c52db7bd..48c0e114 100644 --- a/src/main/java/com/mangopay/core/FilterReports.java +++ b/src/main/java/com/mangopay/core/FilterReports.java @@ -18,6 +18,20 @@ public FilterReports() { resultCode = new ArrayList<>(); } + /* + * Common + */ + + @SerializedName("BeforeDate") + private Long beforeDate; + + @SerializedName("AfterDate") + private Long afterDate; + + /* + * Transactions Report + */ + @SerializedName("Status") private List status; @@ -27,12 +41,6 @@ public FilterReports() { @SerializedName("Nature") private List nature; - @SerializedName("BeforeDate") - private Long beforeDate; - - @SerializedName("AfterDate") - private Long afterDate; - @SerializedName("ResultCode") private List resultCode; @@ -54,6 +62,46 @@ public FilterReports() { @SerializedName("MaxDebitedFundsCurrency") private CurrencyIso maxDebitedFundsCurrency; + /* + * Wallets Report + */ + + /** + * The ID of the wallet owner requesting the report. + */ + @SerializedName("OwnerId") + private String ownerId; + + /** + * The currency used in the report. + */ + @SerializedName("Currency") + private CurrencyIso currency; + + /** + * The minimum balance amount of the wallets taken into consideration. + */ + @SerializedName("MinBalanceAmount") + private int minBalanceAmount; + + /** + * The currency of the {@link #minBalanceAmount} filter. + */ + @SerializedName("MinBalanceCurrency") + private CurrencyIso minBalanceCurrency; + + /** + * The maximum balance amount of the wallets taken into consideration. + */ + @SerializedName("MaxBalanceAmount") + private int maxBalanceAmount; + + /** + * The currency of the {@link #maxBalanceAmount} filter. + */ + @SerializedName("MaxBalanceCurrency") + private CurrencyIso maxBalanceCurrency; + public List getStatus() { return status; } @@ -149,4 +197,52 @@ public CurrencyIso getMaxDebitedFundsCurrency() { public void setMaxDebitedFundsCurrency(CurrencyIso maxDebitedFundsCurrency) { this.maxDebitedFundsCurrency = maxDebitedFundsCurrency; } + + public String getOwnerId() { + return ownerId; + } + + public void setOwnerId(String ownerId) { + this.ownerId = ownerId; + } + + public CurrencyIso getCurrency() { + return currency; + } + + public void setCurrency(CurrencyIso currency) { + this.currency = currency; + } + + public int getMinBalanceAmount() { + return minBalanceAmount; + } + + public void setMinBalanceAmount(int minBalanceAmount) { + this.minBalanceAmount = minBalanceAmount; + } + + public CurrencyIso getMinBalanceCurrency() { + return minBalanceCurrency; + } + + public void setMinBalanceCurrency(CurrencyIso minBalanceCurrency) { + this.minBalanceCurrency = minBalanceCurrency; + } + + public int getMaxBalanceAmount() { + return maxBalanceAmount; + } + + public void setMaxBalanceAmount(int maxBalanceAmount) { + this.maxBalanceAmount = maxBalanceAmount; + } + + public CurrencyIso getMaxBalanceCurrency() { + return maxBalanceCurrency; + } + + public void setMaxBalanceCurrency(CurrencyIso maxBalanceCurrency) { + this.maxBalanceCurrency = maxBalanceCurrency; + } } diff --git a/src/main/resources/com/mangopay/core/mangopay.properties b/src/main/resources/com/mangopay/core/mangopay.properties index 3ec64745..3cf3e847 100644 --- a/src/main/resources/com/mangopay/core/mangopay.properties +++ b/src/main/resources/com/mangopay/core/mangopay.properties @@ -1,2 +1,2 @@ -#Wed Aug 02 18:42:47 EEST 2017 +#Thu Aug 03 02:38:17 EEST 2017 version=2.0.0 diff --git a/src/test/java/com/mangopay/core/ReportApiImplTest.java b/src/test/java/com/mangopay/core/ReportApiImplTest.java index 8040f202..87e313e8 100644 --- a/src/test/java/com/mangopay/core/ReportApiImplTest.java +++ b/src/test/java/com/mangopay/core/ReportApiImplTest.java @@ -1,5 +1,6 @@ package com.mangopay.core; +import com.mangopay.core.enumerations.CurrencyIso; import com.mangopay.core.enumerations.ReportType; import com.mangopay.core.enumerations.SortDirection; import com.mangopay.entities.ReportRequest; @@ -15,10 +16,18 @@ */ public class ReportApiImplTest extends BaseTest { + private static final int SMALL_AMOUNT = 100; + private static final int LARGE_AMOUNT = 9999; + private static final CurrencyIso CURRENCY = CurrencyIso.EUR; + @Test - public void createReport() throws Exception { + public void createTransactionsReport() throws Exception { + createReport(ReportType.TRANSACTIONS); + } + + private void createReport(ReportType type) throws Exception { ReportRequest reportPost = new ReportRequest(); - reportPost.setReportType(ReportType.TRANSACTIONS); + reportPost.setReportType(type); ReportRequest report = this.api.getReportApi().create(reportPost); assertNotNull(report); @@ -26,24 +35,61 @@ public void createReport() throws Exception { } @Test - public void createFilteredReport() throws Exception { + public void createWalletsReport() throws Exception { + createReport(ReportType.WALLETS); + } + + @Test + public void createFilteredTransactionsReport() throws Exception { + ReportRequest report = createFilteredTransactionsReport(ReportType.TRANSACTIONS); + checkReport(report); + } + + private ReportRequest createFilteredTransactionsReport(ReportType type) throws Exception { ReportRequest reportPost = new ReportRequest(); - reportPost.setReportType(ReportType.TRANSACTIONS); + reportPost.setReportType(type); String johnsId = this.getJohn().getId(); String walletId = this.getJohnsWallet().getId(); reportPost.setFilters(new FilterReports()); - reportPost.getFilters().setAuthorId(johnsId); - reportPost.getFilters().setWalletId(walletId); + if (type.equals(ReportType.WALLETS)) { + reportPost.getFilters().setOwnerId(johnsId); + reportPost.getFilters().setMinBalanceAmount(SMALL_AMOUNT); + reportPost.getFilters().setMinBalanceCurrency(CURRENCY); + reportPost.getFilters().setMaxBalanceAmount(LARGE_AMOUNT); + reportPost.getFilters().setMaxBalanceCurrency(CURRENCY); + } else { + reportPost.getFilters().setAuthorId(johnsId); + reportPost.getFilters().setWalletId(walletId); + } - ReportRequest report = this.api.getReportApi().create(reportPost); + return this.api.getReportApi().create(reportPost); + } + + private void checkReport(ReportRequest report) throws Exception { assertNotNull(report); - assertNotNull(report.getFilters()); - assertNotNull(report.getFilters().getAuthorId()); - assertEquals(johnsId, report.getFilters().getAuthorId()); - assertNotNull(report.getFilters().getWalletId()); - assertEquals(walletId, report.getFilters().getWalletId()); assertTrue(report.getId().length() > 0); + assertNotNull(report.getFilters()); + + if (report.getReportType().equals(ReportType.WALLETS)) { + assertNotNull(report.getFilters().getOwnerId()); + assertEquals(this.getJohn().getId(), report.getFilters().getOwnerId()); + assertEquals(report.getFilters().getMinBalanceAmount(), SMALL_AMOUNT); + assertEquals(report.getFilters().getMinBalanceCurrency(), CURRENCY); + assertEquals(report.getFilters().getMaxBalanceAmount(), LARGE_AMOUNT); + assertEquals(report.getFilters().getMaxBalanceCurrency(), CURRENCY); + } else { + assertNotNull(report.getFilters().getAuthorId()); + assertEquals(this.getJohn().getId(), report.getFilters().getAuthorId()); + assertNotNull(report.getFilters().getWalletId()); + assertEquals(this.getJohnsWallet().getId(), report.getFilters().getWalletId()); + } + } + + @Test + public void createFilteredWalletsReport() throws Exception { + ReportRequest report = createFilteredTransactionsReport(ReportType.WALLETS); + checkReport(report); } @Test From 56a47492b7cbae281963a709c151fb3521384d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20POIS?= Date: Fri, 4 Aug 2017 15:20:19 +0200 Subject: [PATCH 3/4] Update FilterReports.java --- src/main/java/com/mangopay/core/FilterReports.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/mangopay/core/FilterReports.java b/src/main/java/com/mangopay/core/FilterReports.java index 5f241fcd..2ddbace8 100644 --- a/src/main/java/com/mangopay/core/FilterReports.java +++ b/src/main/java/com/mangopay/core/FilterReports.java @@ -257,7 +257,7 @@ public CurrencyIso getMaxBalanceCurrency() { public void setMaxBalanceCurrency(CurrencyIso maxBalanceCurrency) { this.maxBalanceCurrency = maxBalanceCurrency; - + } public Integer getMinFeesAmount() { return minFeesAmount; From 1ddd3f3001bc7971fe86fdb5747a9dbe70114f12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20POIS?= Date: Fri, 4 Aug 2017 15:33:44 +0200 Subject: [PATCH 4/4] Update ReportApiImplTest.java --- src/test/java/com/mangopay/core/ReportApiImplTest.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/test/java/com/mangopay/core/ReportApiImplTest.java b/src/test/java/com/mangopay/core/ReportApiImplTest.java index ec828c54..a58714a4 100644 --- a/src/test/java/com/mangopay/core/ReportApiImplTest.java +++ b/src/test/java/com/mangopay/core/ReportApiImplTest.java @@ -92,14 +92,6 @@ private void checkReport(ReportRequest report) throws Exception { assertEquals(this.getJohn().getId(), report.getFilters().getAuthorId()); assertNotNull(report.getFilters().getWalletId()); assertEquals(this.getJohnsWallet().getId(), report.getFilters().getWalletId()); - assertNotNull(report.getFilters().getMinFeesAmount()); - assertTrue(report.getFilters().getMinFeesAmount() == minFees); - assertNotNull(report.getFilters().getMinFeesCurrency()); - assertEquals(report.getFilters().getMinFeesCurrency(), minCurrency); - assertNotNull(report.getFilters().getMaxFeesAmount()); - assertTrue(report.getFilters().getMaxFeesAmount() == maxFees); - assertNotNull(report.getFilters().getMaxFeesCurrency()); - assertEquals(report.getFilters().getMaxFeesCurrency(), maxCurrency); } }