galovics commented on code in PR #3202:
URL: https://github.com/apache/fineract/pull/3202#discussion_r1206384084


##########
fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/Page.java:
##########
@@ -38,4 +38,8 @@ public int getTotalFilteredRecords() {
     public List<E> getPageItems() {
         return this.pageItems;
     }
+
+    public static <E> Page<E> convertFromSpringPage(final 
org.springframework.data.domain.Page<E> springPage) {

Review Comment:
   Let's remove this.



##########
fineract-investor/src/main/java/org/apache/fineract/investor/service/ExternalAssetOwnersReadServiceImpl.java:
##########
@@ -37,15 +37,27 @@ public class ExternalAssetOwnersReadServiceImpl implements 
ExternalAssetOwnersRe
     private final ExternalAssetOwnersTransferMapper mapper;
 
     @Override
-    public List<ExternalTransferData> retrieveTransferData(Long loanId, String 
externalLoanId, String transferExternalId) {
-        List<ExternalAssetOwnerTransfer> result = new ArrayList<>();
+    public Page<ExternalTransferData> retrieveTransferData(Long loanId, String 
externalLoanId, String transferExternalId, Integer offset,
+            Integer limit) {
+        org.springframework.data.domain.Page<ExternalAssetOwnerTransfer> 
result;

Review Comment:
   No need for qualified name.



##########
integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/InitiateExternalAssetOwnerTransferTest.java:
##########
@@ -114,17 +115,16 @@ public void saleActiveLoanToExternalAssetOwner() {
             assertEquals(responseMap.get("resourceExternalId"), 
transferExternalId);
 
             String retrieveResponse = 
externalAssetOwnerHelper.retrieveTransferByLoanId(loanID.longValue());
-            Type retrieveType = new TypeToken<List<Map<String, Object>>>() 
{}.getType();
-            List<Map<String, Object>> retrieveResponseMap = new 
Gson().fromJson(retrieveResponse, retrieveType);
-            assertEquals(1, retrieveResponseMap.size());
-            assertEquals(retrieveResponseMap.get(0).get("transferExternalId"), 
transferExternalId);
-            assertEquals(retrieveResponseMap.get(0).get("status"), "PENDING");
+            Type retrieveType = new TypeToken<Page<Map<String, Object>>>() 
{}.getType();
+            Page<Map<String, Object>> retrieveResponseMap = new 
Gson().fromJson(retrieveResponse, retrieveType);

Review Comment:
   I think we need an additional test case to verify that paging is working. 
Don't you think?



##########
fineract-investor/src/main/java/org/apache/fineract/investor/service/ExternalAssetOwnersReadServiceImpl.java:
##########
@@ -37,15 +37,27 @@ public class ExternalAssetOwnersReadServiceImpl implements 
ExternalAssetOwnersRe
     private final ExternalAssetOwnersTransferMapper mapper;
 
     @Override
-    public List<ExternalTransferData> retrieveTransferData(Long loanId, String 
externalLoanId, String transferExternalId) {
-        List<ExternalAssetOwnerTransfer> result = new ArrayList<>();
+    public Page<ExternalTransferData> retrieveTransferData(Long loanId, String 
externalLoanId, String transferExternalId, Integer offset,
+            Integer limit) {
+        org.springframework.data.domain.Page<ExternalAssetOwnerTransfer> 
result;
+        if (offset == null) {
+            offset = 0;
+        }
+        if (limit == null) {
+            limit = 100;
+        }
+        PageRequest pageRequest = PageRequest.of(offset, limit);
         if (loanId != null) {
-            
result.addAll(externalAssetOwnerTransferRepository.findAllByLoanId(loanId));
+            result = 
externalAssetOwnerTransferRepository.findAllByLoanId(loanId, pageRequest);

Review Comment:
   I think for all these repository calls where we use pageable we are missing 
a crucial thing, a consistent ordering of the result. Let's do an ID based 
ordering at least for the query to produce consistent results between runs.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to