You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ad...@apache.org on 2026/03/02 20:29:59 UTC

(fineract) branch develop updated: FINERACT-2477: Refactor SavingsAccountTransactionsApiResource command dispatch to switch expressions

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 <sa...@gmail.com>
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);
     }
 }