Skip to content

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

Open
nidhiii128 wants to merge 1 commit into
apache:developfrom
nidhiii128:FINERACT-2291-update-delete-group
Open

FINERACT-2291: New command processing - update and delete group#6015
nidhiii128 wants to merge 1 commit 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!

@Produces({ MediaType.APPLICATION_JSON })
@Operation(summary = "Update a Group", operationId = "updateGroup", description = "Updates a Group")
@RequestBody(required = true, content = @Content(schema = @Schema(implementation = GroupsApiResourceSwagger.PutGroupsGroupIdRequest.class)))
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = GroupsApiResourceSwagger.PutGroupsGroupIdResponse.class)))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

You can leave the @ApiResponse(responseCode = "200", description = "OK" intact and just remove the content part...

@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.

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.

2 participants