diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategyProvider.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategyProvider.java index fbd460cc5..42ff0c5ae 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategyProvider.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategyProvider.java @@ -35,12 +35,11 @@ import org.springframework.stereotype.Component; @Component public class CommandStrategyProvider { - public static final String CREATE_TRANSACTION_LOAN_COMMAND_STRATEGY = "createTransactionLoanCommandStrategy"; private final ApplicationContext applicationContext; private static final Map commandStrategies = new ConcurrentHashMap<>(); /** - * Constructs a CommandStrategyProvider with argument of ApplicationContext type. It also initialize + * Constructs a CommandStrategyProvider with argument of ApplicationContext type. It also initializes * commandStrategies using init() function by filling it with available CommandStrategies in * {@link org.apache.fineract.batch.command.internal}. * @@ -56,7 +55,7 @@ public class CommandStrategyProvider { /** * Returns an appropriate commandStrategy after determining it using the CommandContext of the request. If no such - * Strategy is found then a default strategy is returned back. + * Strategy is found then a default strategy is returned. * * @param commandContext * @return CommandStrategy @@ -93,16 +92,8 @@ public class CommandStrategyProvider { commandStrategies.put(CommandContext.resource("loans\\/\\d+\\/charges").method("GET").build(), "collectChargesCommandStrategy"); commandStrategies.put(CommandContext.resource("loans\\/\\d+\\/charges\\/\\d+").method("GET").build(), "getChargeByIdCommandStrategy"); - commandStrategies.put(CommandContext.resource("loans\\/\\d+\\/transactions\\?command=repayment").method("POST").build(), - CREATE_TRANSACTION_LOAN_COMMAND_STRATEGY); - commandStrategies.put(CommandContext.resource("loans\\/\\d+\\/transactions\\?command=creditBalanceRefund").method("POST").build(), - CREATE_TRANSACTION_LOAN_COMMAND_STRATEGY); - commandStrategies.put(CommandContext.resource("loans\\/\\d+\\/transactions\\?command=goodwillCredit").method("POST").build(), - CREATE_TRANSACTION_LOAN_COMMAND_STRATEGY); - commandStrategies.put(CommandContext.resource("loans\\/\\d+\\/transactions\\?command=merchantIssuedRefund").method("POST").build(), - CREATE_TRANSACTION_LOAN_COMMAND_STRATEGY); - commandStrategies.put(CommandContext.resource("loans\\/\\d+\\/transactions\\?command=payoutRefund").method("POST").build(), - CREATE_TRANSACTION_LOAN_COMMAND_STRATEGY); + commandStrategies.put(CommandContext.resource("loans\\/\\d+\\/transactions\\?(\\w+(\\=[\\w]+))").method("POST").build(), + "createTransactionLoanCommandStrategy"); commandStrategies.put(CommandContext.resource("loans\\/\\d+\\/transactions\\/\\d+").method("POST").build(), "adjustTransactionCommandStrategy"); commandStrategies.put(CommandContext.resource("clients\\/\\d+\\?command=activate").method("POST").build(), diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanTransactionsApiResourceSwagger.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanTransactionsApiResourceSwagger.java index 2102a6bb7..8e1fe85c0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanTransactionsApiResourceSwagger.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoanTransactionsApiResourceSwagger.java @@ -212,6 +212,8 @@ final class LoanTransactionsApiResourceSwagger { public String receiptNumber; @Schema(example = "ban123") public String bankNumber; + @Schema(example = "3") + public Integer loanChargeId; } diff --git a/fineract-provider/src/test/java/org/apache/fineract/batch/command/CommandStrategyProviderTest.java b/fineract-provider/src/test/java/org/apache/fineract/batch/command/CommandStrategyProviderTest.java index 9579cf9ae..5ce803bf2 100644 --- a/fineract-provider/src/test/java/org/apache/fineract/batch/command/CommandStrategyProviderTest.java +++ b/fineract-provider/src/test/java/org/apache/fineract/batch/command/CommandStrategyProviderTest.java @@ -84,6 +84,8 @@ public class CommandStrategyProviderTest { mock(CreateTransactionLoanCommandStrategy.class)), Arguments.of("loans/123/transactions?command=payoutRefund", HttpMethod.POST, "createTransactionLoanCommandStrategy", mock(CreateTransactionLoanCommandStrategy.class)), + Arguments.of("loans/123/transactions?command=chargeRefund", HttpMethod.POST, "createTransactionLoanCommandStrategy", + mock(CreateTransactionLoanCommandStrategy.class)), Arguments.of("loans/123/transactions/123", HttpMethod.POST, "adjustTransactionCommandStrategy", mock(AdjustTransactionCommandStrategy.class)), Arguments.of("clients/456?command=activate", HttpMethod.POST, "activateClientCommandStrategy",