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

[MODFIN-320] New endpoint for batch transaction processing #386

Merged
merged 7 commits into from
Jan 19, 2024

Conversation

damien-git
Copy link
Contributor

@damien-git damien-git commented Jan 17, 2024

Purpose

MODFIN-320 - Create batch endpoint to update list of transactions at single request

Approach

Defined the new endpoint, implemented with a minimal "not implemented" basis.

See also: PR with new model in acq-models, mod-finance PR.

Pre-Merge Checklist:

Before merging this PR, please go through the following list and take appropriate actions.

  • Does this PR meet or exceed the expected quality standards?
    • Code coverage on new code is 80% or greater
    • Duplications on new code is 3% or less
    • There are no major code smells or security issues
  • Does this introduce breaking changes?
    • Were any API paths or methods changed, added or removed?
    • Were there any schema changes?
    • Did any of the interface versions change?
    • Were permissions changed, added or removed?
    • Are there new interface dependencies?
    • There are no breaking changes in this PR.

If there are breaking changes, please STOP and consider the following:

  • What other modules will these changes impact?
  • Do JIRAs exist to update the impacted modules?
    • If not, please create them
    • Do they contain the appropriate level of detail? Which endpoints/schemas changed, etc.
    • Do they have all the appropriate links to blocked/related issues?
  • Are the JIRAs under active development?
    • If not, contact the project's PO and make sure they're aware of the urgency.
  • Do PRs exist for these changes?
    • If so, have they been approved?
  • Did you modify code to call some additional endpoints?
    • If so, do you check that necessary module permission added in ModuleDescriptor-template.yaml file?

Ideally, all the PRs involved in breaking changes would be merged on the same day
to avoid breaking the folio-testing environment.
Communication is paramount if that is to be achieved,
especially as the number of inter-module and inter-team dependencies increase.

While it's helpful for reviewers to help identify potential problems,
ensuring that it's safe to merge is ultimately the responsibility of the PR assignee.

@damien-git
Copy link
Contributor Author

Regarding the code warnings:

  • I prefer not to change the way Autowired is used, because this would make the code inconsistent with the rest of mod-finance-storage.
  • requestContext will be used when it gets implemented, so it should not be removed.

@damien-git damien-git requested a review from a team January 18, 2024 20:15
} catch (Exception ex) {
return Future.failedFuture(ex);
}
if (!batch.getTransactionsToCreate().isEmpty()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CollectionUtils.isNotEmpty is more preferable here, because NPE is not possible and easier to read without !

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just small suggestion to use switch cases

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A switch would assume only one case is processed. Here we want to process all operations. I added more implementation to clarify.
Regarding isNotEmpty(): it would not hurt to use it, but I think getTransactionsToCreate() can never be null, and with my new implementation this is no longer needed.

} catch (Exception ex) {
return Future.failedFuture(ex);
}
if (!batch.getTransactionsToCreate().isEmpty()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just small suggestion to use switch cases

Copy link

Quality Gate Passed Quality Gate passed

The SonarCloud Quality Gate passed, but some issues were introduced.

5 New issues
0 Security Hotspots
89.7% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud

@damien-git damien-git merged commit 43139a0 into master Jan 19, 2024
6 checks passed
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