This is an automated email from the ASF dual-hosted git repository.
adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new ef00f27d15 FINERACT-2477: Refactor
SavingsAccountTransactionsApiResource command dispatch to switch expressions
ef00f27d15 is described below
commit ef00f27d15e3e2fb70f56e1647d53211be43793d
Author: Vladyslav <[email protected]>
AuthorDate: Tue Feb 24 15:34:44 2026 +0200
FINERACT-2477: Refactor SavingsAccountTransactionsApiResource command
dispatch to switch expressions
---
.../api/SavingsAccountTransactionsApiResource.java | 74 +++++++---------------
1 file changed, 24 insertions(+), 50 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountTransactionsApiResource.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountTransactionsApiResource.java
index b2aff4081d..68ee87d8d5 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountTransactionsApiResource.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountTransactionsApiResource.java
@@ -81,10 +81,6 @@ public class SavingsAccountTransactionsApiResource {
private final PaymentTypeReadService paymentTypeReadPlatformService;
private final SavingsAccountTransactionSearchService
transactionsSearchService;
- private boolean is(final String commandParam, final String commandValue) {
- return StringUtils.isNotBlank(commandParam) &&
commandParam.trim().equalsIgnoreCase(commandValue);
- }
-
@GET
@Path("template")
@Consumes({ MediaType.APPLICATION_JSON })
@@ -179,30 +175,17 @@ public class SavingsAccountTransactionsApiResource {
final String apiRequestBodyAsJson) {
final CommandWrapperBuilder builder = new
CommandWrapperBuilder().withJson(apiRequestBodyAsJson);
- CommandProcessingResult result = null;
- if (is(commandParam, "deposit")) {
- final CommandWrapper commandRequest =
builder.savingsAccountDeposit(savingsId).build();
- result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
- } else if (is(commandParam, "gsimDeposit")) {
- final CommandWrapper commandRequest =
builder.gsimSavingsAccountDeposit(savingsId).build();
- result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
- } else if (is(commandParam, "withdrawal")) {
- final CommandWrapper commandRequest =
builder.savingsAccountWithdrawal(savingsId).build();
- result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
- } else if (is(commandParam, "postInterestAsOn")) {
- final CommandWrapper commandRequest =
builder.savingsAccountInterestPosting(savingsId).build();
- result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
- } else if (is(commandParam, SavingsApiConstants.COMMAND_HOLD_AMOUNT)) {
- final CommandWrapper commandRequest =
builder.holdAmount(savingsId).build();
- result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
- }
-
- if (result == null) {
- //
- throw new UnrecognizedQueryParamException("command", commandParam,
- new Object[] { "deposit", "withdrawal",
SavingsApiConstants.COMMAND_HOLD_AMOUNT });
- }
-
+ final CommandWrapper commandRequest = switch
(StringUtils.trimToEmpty(commandParam)) {
+ case "deposit" -> builder.savingsAccountDeposit(savingsId).build();
+ case "gsimDeposit" ->
builder.gsimSavingsAccountDeposit(savingsId).build();
+ case "withdrawal" ->
builder.savingsAccountWithdrawal(savingsId).build();
+ case "postInterestAsOn" ->
builder.savingsAccountInterestPosting(savingsId).build();
+ case SavingsApiConstants.COMMAND_HOLD_AMOUNT ->
builder.holdAmount(savingsId).build();
+ default -> throw new UnrecognizedQueryParamException("command",
commandParam, "deposit", "withdrawal",
+ SavingsApiConstants.COMMAND_HOLD_AMOUNT);
+ };
+
+ final CommandProcessingResult result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
return this.toApiJsonSerializer.serialize(result);
}
@@ -225,28 +208,19 @@ public class SavingsAccountTransactionsApiResource {
final CommandWrapperBuilder builder = new
CommandWrapperBuilder().withJson(jsonApiRequest);
- CommandProcessingResult result = null;
- if (is(commandParam, SavingsApiConstants.COMMAND_UNDO_TRANSACTION)) {
- final CommandWrapper commandRequest =
builder.undoSavingsAccountTransaction(savingsId, transactionId).build();
- result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
- } else if (is(commandParam,
SavingsApiConstants.COMMAND_REVERSE_TRANSACTION)) {
- final CommandWrapper commandRequest =
builder.reverseSavingsAccountTransaction(savingsId, transactionId).build();
- result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
- } else if (is(commandParam,
SavingsApiConstants.COMMAND_ADJUST_TRANSACTION)) {
- final CommandWrapper commandRequest =
builder.adjustSavingsAccountTransaction(savingsId, transactionId).build();
- result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
- } else if (is(commandParam,
SavingsApiConstants.COMMAND_RELEASE_AMOUNT)) {
- final CommandWrapper commandRequest =
builder.releaseAmount(savingsId, transactionId).build();
- result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
- }
-
- if (result == null) {
- //
- throw new UnrecognizedQueryParamException("command", commandParam,
- new Object[] {
SavingsApiConstants.COMMAND_UNDO_TRANSACTION,
SavingsApiConstants.COMMAND_ADJUST_TRANSACTION,
- SavingsApiConstants.COMMAND_RELEASE_AMOUNT,
SavingsApiConstants.COMMAND_REVERSE_TRANSACTION });
- }
-
+ final CommandWrapper commandRequest = switch
(StringUtils.trimToEmpty(commandParam)) {
+ case SavingsApiConstants.COMMAND_UNDO_TRANSACTION ->
builder.undoSavingsAccountTransaction(savingsId, transactionId).build();
+ case SavingsApiConstants.COMMAND_REVERSE_TRANSACTION ->
+ builder.reverseSavingsAccountTransaction(savingsId,
transactionId).build();
+ case SavingsApiConstants.COMMAND_ADJUST_TRANSACTION ->
+ builder.adjustSavingsAccountTransaction(savingsId,
transactionId).build();
+ case SavingsApiConstants.COMMAND_RELEASE_AMOUNT ->
builder.releaseAmount(savingsId, transactionId).build();
+ default -> throw new UnrecognizedQueryParamException("command",
commandParam, SavingsApiConstants.COMMAND_UNDO_TRANSACTION,
+ SavingsApiConstants.COMMAND_ADJUST_TRANSACTION,
SavingsApiConstants.COMMAND_RELEASE_AMOUNT,
+ SavingsApiConstants.COMMAND_REVERSE_TRANSACTION);
+ };
+
+ final CommandProcessingResult result =
this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
return this.toApiJsonSerializer.serialize(result);
}
}