Skip to content
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

Draft
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

magyari-adam
Copy link
Contributor

  • with transactionType filtering

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.

@@ -275,6 +276,12 @@ private PaymentType() {}
}
}

@Schema(description = "GetLoansLoanIdTransactionsResponse")
public abstract static class GetLoansLoanIdTransactionsResponse implements Page<GetLoansLoanIdTransactionsTransactionIdResponse> {
Copy link
Contributor

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?

Copy link
Contributor Author

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;
Copy link
Contributor

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);
Copy link
Contributor

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?

Copy link
Contributor Author

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));
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants