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);
     }
 }

Reply via email to