Skip to content

FINERACT-2291: New command processing - update and delete group - #6015

Draft
nidhiii128 wants to merge 2 commits into
apache:developfrom
nidhiii128:FINERACT-2291-update-delete-group
Draft

FINERACT-2291: New command processing - update and delete group#6015
nidhiii128 wants to merge 2 commits into
apache:developfrom
nidhiii128:FINERACT-2291-update-delete-group

Conversation

@nidhiii128

Copy link
Copy Markdown
Contributor

Description

Migrates the "update group" (PUT /v1/groups/{groupId}) and "delete group" (DELETE /v1/groups/{groupId}) REST endpoints from the legacy JSON-blob command-processing path to the new typed fineract-command framework.

Scope (PR 2 of 3 for FINERACT-2291)

  • New typed GroupUpdateRequest / GroupUpdateResponse POJOs with Jakarta Validation
  • New typed GroupDeleteRequest / GroupDeleteResponse POJOs
  • New GroupUpdateCommand, GroupDeleteCommand and their corresponding handlers using CommandHandler<REQ, RES>
  • GroupingTypesWritePlatformService gets new typed updateGroup(GroupUpdateRequest) and deleteGroup(GroupDeleteRequest) overloads. Legacy methods kept since they're still used by DeleteCenterCommandHandler and other code paths.
  • Controller methods now route through CommandDispatcher
  • AntMatchers added in SecurityConfig for PUT /api/*/groups/* (UPDATE_GROUP) and DELETE /api/*/groups/* (DELETE_GROUP)
  • Resilience4j configuration added for commandGroupUpdate and commandGroupDelete
  • 7 translation keys added to ValidationMessages.properties
  • Legacy UpdateGroupCommandHandler and DeleteGroupCommandHandler deleted
  • Removed trivial @ApiResponse(200) and @RequestBody swagger annotations on the migrated endpoints (return types are self-describing)

Expected CI failure

run-api-backward-compatibility will fail due to removal of trivial @ApiResponse(200) annotations — same as PR #5952 (per @vidakovic's guidance).

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Write the commit message as per our guidelines
  • 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 our 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
  • This PR must not be a "code dump". Large changes can be made in a branch, with assistance. Ask for help on the developer mailing list.

Your assigned reviewer(s) will follow our guidelines for code reviews.

@nidhiii128
nidhiii128 force-pushed the FINERACT-2291-update-delete-group branch from e9cb5d5 to 4900905 Compare June 22, 2026 11:05
@nidhiii128

Copy link
Copy Markdown
Contributor Author

Hi reviewers, quick note on the failing CI check:
The only failing check is run-api-backward-compatibility / api-compatibility-check.

This is caused by the removal of @apiresponse(responseCode = "200", ...) annotations from the migrated controller methods, following the style guidance applied in prior reviews (Aleks flagged these as trivial/noisy in earlier PRs). Removing them drops the documented response schema from the OpenAPI spec, which swagger-brake then reports as a backward-incompatible change.

I've gone with the style preference. The same expected failure pattern appears in the merged StaffCreateCommand migration reference.

All 84 other checks are green:
Happy to revert the @apiresponse removal if the team prefers swagger-brake green over annotation cleanup. Otherwise, ready for review when you have time. Thank you!

@nidhiii128
nidhiii128 force-pushed the FINERACT-2291-update-delete-group branch from 4900905 to 89d683c Compare June 25, 2026 19:35
@nidhiii128
nidhiii128 requested a review from adamsaghy June 25, 2026 19:35
@adamsaghy

Copy link
Copy Markdown
Contributor

@nidhiii128 Please resolve the conflicts and review the failing checks.

@nidhiii128
nidhiii128 force-pushed the FINERACT-2291-update-delete-group branch from 89d683c to 792c489 Compare June 27, 2026 10:52
@Aman-Mittal

Copy link
Copy Markdown
Member

@adamsaghy @vidakovic Please review

@nidhiii128
nidhiii128 marked this pull request as draft July 10, 2026 07:18
@nidhiii128
nidhiii128 force-pushed the FINERACT-2291-update-delete-group branch from 792c489 to 3e01ff7 Compare July 14, 2026 07:45
@nidhiii128
nidhiii128 marked this pull request as ready for review July 14, 2026 11:02
@nidhiii128

Copy link
Copy Markdown
Contributor Author

Thanks for the review. @vidakovic

Directly flagged:

  1. SecurityConfig // group block consolidated at the END of the authorization list (POST + PUT + DELETE all together, right before
    twofactor).

  2. @apiresponse(200) removed from the typed update and delete endpoints.

  3. Legacy updateGroup(Long, JsonCommand) and closeGroup(Long, JsonCommand)
    deleted from GroupingTypesWritePlatformService (interface + impl).

  4. Mock tests kept.

  5. Legacy deleteGroup(Long) deleted; DeleteCenterCommandHandler now bridges to the typed deleteGroup(GroupDeleteRequest) (CENTER migration is out of scope for this PR).

  6. Legacy CloseGroupCommandHandler deleted.

  7. CommandWrapperBuilder.closeGroup() deleted.

  8. Added dedicated typed POST /groups/{groupId}/close endpoint with Jackson binding, removed the command=close branch from activateOrGenerateCollectionSheet.

  9. context.authenticatedUser() removed from typed updateGroup and closeGroup closedBy audit will be null until we align on a broader audit strategy.

  10. 4 new files for close (Request, Response, Command, Handler with @Retry) matching the update/delete pattern.

  11. Retry config commandGroupClose added to application.properties.

This PR now migrates update+delete+close to typed dispatch with zero JsonCommand in the Group service interface for these operations.

@github-actions

Copy link
Copy Markdown

This pull request seems to be stale. Are you still planning to work on it? We will automatically close it in 30 days.

@github-actions github-actions Bot added the stale label Aug 14, 2026
@nidhiii128
nidhiii128 force-pushed the FINERACT-2291-update-delete-group branch from 3e01ff7 to b7ea812 Compare August 15, 2026 13:16
@Aman-Mittal Aman-Mittal removed the stale label Aug 15, 2026
@nidhiii128
nidhiii128 marked this pull request as draft August 15, 2026 14:26
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.

4 participants