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]