-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FINERACT-2203: LoanTransactionsApi add getLoanTransactions #4432
base: develop
Are you sure you want to change the base?
Conversation
- with transactionType filtering
@@ -275,6 +276,12 @@ private PaymentType() {} | |||
} | |||
} | |||
|
|||
@Schema(description = "GetLoansLoanIdTransactionsResponse") | |||
public abstract static class GetLoansLoanIdTransactionsResponse implements Page<GetLoansLoanIdTransactionsTransactionIdResponse> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason why is this abstract?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't want to fully implement the Page interface for it, and it's here because swagger can't take response spec with type parameter in it.
|
||
private LoanTransactionType transactionTypeFromParam(String transactionTypeParam) { | ||
return switch (transactionTypeParam) { | ||
case DataTableApiConstant.disbursement -> LoanTransactionType.DISBURSEMENT; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Datatableapi?
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSIONS); | ||
|
||
ExternalId loanExternalId = ExternalIdFactory.produce(loanExternalIdStr); | ||
Long resolvedLoanId = getResolvedLoanId(loanId, loanExternalId); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can skip this and immediately fetching transaction by loan external id, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This also checks if the loan exists at all, and throws a LoanNotFoundException if not.
return builder.and(predicates.toArray(new Predicate[] {})); | ||
}, pageable); | ||
|
||
return transactionPage.map(x -> x.toData(x.getLoan().getCurrency().toData(), null)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder whether it would be better to change the org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction#toData
to not accept any incoming parameter, rather it is using only the fields that he fetched.
As far as i see noone else is using this method, so we can rework a little bit... maybe we can move the whole mapping out from the LoanTransaction entity into a mapper.
367098c
to
8d5ac8d
Compare
Description
Describe the changes made and why they were made.
Ignore if these details are present on the associated Apache Fineract JIRA ticket.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!
Write the commit message as per https://github.com/apache/fineract/#pull-requests
Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.
Create/update unit or integration tests for verifying the changes made.
Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.
Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes
Submission is not a "code dump". (Large changes can be made "in repository" via a branch. Ask on the developer mailing list for guidance, if required.)
FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.