FINERACT-2242: New command processing - External Event Configuration (org.apache.fineract.infrastructure.event.external)

This commit is contained in:
viktorpavlenko
2025-06-26 15:37:53 +02:00
committed by Aleksandar Vidakovic
parent 86024b83cc
commit ba06234f26
34 changed files with 340 additions and 316 deletions
@@ -86,7 +86,7 @@ import org.apache.fineract.client.models.RetrieveLoansPointInTimeRequest;
import org.apache.fineract.client.util.CallFailedRuntimeException;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.infrastructure.configuration.api.GlobalConfigurationConstants;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.infrastructure.event.external.data.ExternalEventResponse;
import org.apache.fineract.integrationtests.client.IntegrationTest;
import org.apache.fineract.integrationtests.common.BatchHelper;
import org.apache.fineract.integrationtests.common.BusinessDateHelper;
@@ -1275,7 +1275,7 @@ public abstract class BaseLoanIntegrationTest extends IntegrationTest {
}
protected void verifyBusinessEvents(BusinessEvent... businessEvents) {
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
logBusinessEvents(allExternalEvents);
Assertions.assertNotNull(businessEvents);
Assertions.assertNotNull(allExternalEvents);
@@ -1289,7 +1289,7 @@ public abstract class BaseLoanIntegrationTest extends IntegrationTest {
}
}
protected void logBusinessEvents(List<ExternalEventDTO> allExternalEvents) {
protected void logBusinessEvents(List<ExternalEventResponse> allExternalEvents) {
allExternalEvents.forEach(externalEventDTO -> {
Object amount = externalEventDTO.getPayLoad().get("amount");
Object outstandingLoanBalance = externalEventDTO.getPayLoad().get("outstandingLoanBalance");
@@ -1306,7 +1306,7 @@ public abstract class BaseLoanIntegrationTest extends IntegrationTest {
protected void deleteAllExternalEvents() {
ExternalEventHelper.deleteAllExternalEvents(requestSpec, createResponseSpecification(Matchers.is(204)));
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
Assertions.assertEquals(0, allExternalEvents.size());
}
@@ -27,7 +27,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.client.models.BusinessDateUpdateRequest;
import org.apache.fineract.client.models.PostLoanProductsRequest;
import org.apache.fineract.client.models.PostLoanProductsResponse;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.infrastructure.event.external.data.ExternalEventResponse;
import org.apache.fineract.integrationtests.common.BusinessStepHelper;
import org.apache.fineract.integrationtests.common.ClientHelper;
import org.apache.fineract.integrationtests.common.ExternalEventConfigurationHelper;
@@ -85,7 +85,7 @@ public class CustomSnapshotEventIntegrationTest extends BaseLoanIntegrationTest
updateBusinessDateAndExecuteCOBJob("01 February 2023");
// verify external events
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
Assertions.assertEquals(1, allExternalEvents.size());
Assertions.assertEquals("LoanAccountCustomSnapshotBusinessEvent", allExternalEvents.get(0).getType());
Assertions.assertEquals(loanId, allExternalEvents.get(0).getAggregateRootId());
@@ -163,7 +163,7 @@ public class CustomSnapshotEventIntegrationTest extends BaseLoanIntegrationTest
updateBusinessDateAndExecuteCOBJob("01 February 2023");
// verify external events
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
Assertions.assertEquals(0, allExternalEvents.size());
});
}
@@ -208,7 +208,7 @@ public class CustomSnapshotEventIntegrationTest extends BaseLoanIntegrationTest
updateBusinessDateAndExecuteCOBJob("01 February 2023");
// verify external events
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
Assertions.assertEquals(0, allExternalEvents.size());
});
}
@@ -252,7 +252,7 @@ public class CustomSnapshotEventIntegrationTest extends BaseLoanIntegrationTest
updateBusinessDateAndExecuteCOBJob("31 January 2023");
// verify external events
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
Assertions.assertEquals(0, allExternalEvents.size());
});
}
@@ -297,7 +297,7 @@ public class CustomSnapshotEventIntegrationTest extends BaseLoanIntegrationTest
updateBusinessDateAndExecuteCOBJob("01 February 2023");
// verify external events
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
Assertions.assertEquals(0, allExternalEvents.size());
});
}
@@ -47,7 +47,7 @@ import org.apache.fineract.client.models.PostLoansRequest;
import org.apache.fineract.client.models.PostLoansResponse;
import org.apache.fineract.client.models.PostUpdateRescheduleLoansRequest;
import org.apache.fineract.infrastructure.configuration.api.GlobalConfigurationConstants;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.infrastructure.event.external.data.ExternalEventResponse;
import org.apache.fineract.integrationtests.common.BusinessStepHelper;
import org.apache.fineract.integrationtests.common.ClientHelper;
import org.apache.fineract.integrationtests.common.LoanRescheduleRequestHelper;
@@ -182,11 +182,11 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
.chargeAdjustment(loanId, chargeId, new PostLoansLoanIdChargesChargeIdRequest().amount(111.0).locale("en"))
.getSubResourceId();
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventDTO> list = allExternalEvents.stream()
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> list = allExternalEvents.stream()
.filter(x -> "LoanChargeAdjustmentPostBusinessEvent".equals(x.getType())).toList();
Assertions.assertEquals(1, list.size());
ExternalEventDTO event = list.get(0);
ExternalEventResponse event = list.get(0);
Object loanChargePaidByList = event.getPayLoad().get("loanChargePaidByList");
Assertions.assertInstanceOf(List.class, loanChargePaidByList);
Assertions.assertEquals(1, ((List<?>) loanChargePaidByList).size());
@@ -224,11 +224,11 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
.chargeAdjustment(loanId, chargeId, new PostLoansLoanIdChargesChargeIdRequest().amount(69.0).locale("en"))
.getSubResourceId();
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventDTO> list = allExternalEvents.stream()
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> list = allExternalEvents.stream()
.filter(x -> "LoanChargeAdjustmentPostBusinessEvent".equals(x.getType())).toList();
Assertions.assertEquals(1, list.size());
ExternalEventDTO event = list.get(0);
ExternalEventResponse event = list.get(0);
Object loanChargePaidByList = event.getPayLoad().get("loanChargePaidByList");
Assertions.assertInstanceOf(List.class, loanChargePaidByList);
Assertions.assertEquals(1, ((List<?>) loanChargePaidByList).size());
@@ -289,11 +289,11 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
deleteAllExternalEvents();
Long transactionId = loanTransactionHelper.makeLoanRepayment("01 January 2021", 300.0F, loanId.intValue()).getResourceId();
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventDTO> list = allExternalEvents.stream()
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> list = allExternalEvents.stream()
.filter(x -> "LoanTransactionMakeRepaymentPostBusinessEvent".equals(x.getType())).toList();
Assertions.assertEquals(1, list.size());
ExternalEventDTO event = list.get(0);
ExternalEventResponse event = list.get(0);
log.info(event.toString());
Object loanChargePaidByList = event.getPayLoad().get("loanChargePaidByList");
Assertions.assertEquals(111.0D, event.getPayLoad().get("feeChargesPortion"));
@@ -367,11 +367,11 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
.chargeAdjustment(loanId, chargeId, new PostLoansLoanIdChargesChargeIdRequest().amount(111.0).locale("en"))
.getSubResourceId();
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventDTO> list = allExternalEvents.stream()
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> list = allExternalEvents.stream()
.filter(x -> "LoanChargeAdjustmentPostBusinessEvent".equals(x.getType())).toList();
Assertions.assertEquals(1, list.size());
ExternalEventDTO event = list.get(0);
ExternalEventResponse event = list.get(0);
Object loanChargePaidByList = event.getPayLoad().get("loanChargePaidByList");
Assertions.assertInstanceOf(List.class, loanChargePaidByList);
Assertions.assertEquals(1, ((List<?>) loanChargePaidByList).size());
@@ -410,11 +410,11 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
.chargeAdjustment(loanId, chargeId, new PostLoansLoanIdChargesChargeIdRequest().amount(69.0).locale("en"))
.getSubResourceId();
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventDTO> list = allExternalEvents.stream()
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> list = allExternalEvents.stream()
.filter(x -> "LoanChargeAdjustmentPostBusinessEvent".equals(x.getType())).toList();
Assertions.assertEquals(1, list.size());
ExternalEventDTO event = list.get(0);
ExternalEventResponse event = list.get(0);
Object loanChargePaidByList = event.getPayLoad().get("loanChargePaidByList");
Assertions.assertInstanceOf(List.class, loanChargePaidByList);
Assertions.assertEquals(1, ((List<?>) loanChargePaidByList).size());
@@ -475,11 +475,11 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
deleteAllExternalEvents();
Long transactionId = loanTransactionHelper.makeLoanRepayment("01 January 2021", 300.0F, loanId.intValue()).getResourceId();
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventDTO> list = allExternalEvents.stream()
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> list = allExternalEvents.stream()
.filter(x -> "LoanTransactionMakeRepaymentPostBusinessEvent".equals(x.getType())).toList();
Assertions.assertEquals(1, list.size());
ExternalEventDTO event = list.get(0);
ExternalEventResponse event = list.get(0);
log.info(event.toString());
Object loanChargePaidByList = event.getPayLoad().get("loanChargePaidByList");
Assertions.assertEquals(111.0D, event.getPayLoad().get("feeChargesPortion"));
@@ -552,11 +552,11 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
.chargeAdjustment(loanId, chargeId, new PostLoansLoanIdChargesChargeIdRequest().amount(111.0).locale("en"))
.getSubResourceId();
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventDTO> list = allExternalEvents.stream()
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> list = allExternalEvents.stream()
.filter(x -> "LoanChargeAdjustmentPostBusinessEvent".equals(x.getType())).toList();
Assertions.assertEquals(1, list.size());
ExternalEventDTO event = list.get(0);
ExternalEventResponse event = list.get(0);
Object loanChargePaidByList = event.getPayLoad().get("loanChargePaidByList");
Assertions.assertInstanceOf(List.class, loanChargePaidByList);
Assertions.assertEquals(1, ((List<?>) loanChargePaidByList).size());
@@ -594,11 +594,11 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
.chargeAdjustment(loanId, chargeId, new PostLoansLoanIdChargesChargeIdRequest().amount(69.0).locale("en"))
.getSubResourceId();
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventDTO> list = allExternalEvents.stream()
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> list = allExternalEvents.stream()
.filter(x -> "LoanChargeAdjustmentPostBusinessEvent".equals(x.getType())).toList();
Assertions.assertEquals(1, list.size());
ExternalEventDTO event = list.get(0);
ExternalEventResponse event = list.get(0);
Object loanChargePaidByList = event.getPayLoad().get("loanChargePaidByList");
Assertions.assertInstanceOf(List.class, loanChargePaidByList);
Assertions.assertEquals(1, ((List<?>) loanChargePaidByList).size());
@@ -658,11 +658,11 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
deleteAllExternalEvents();
Long transactionId = loanTransactionHelper.makeLoanRepayment("01 January 2021", 300.0F, loanId.intValue()).getResourceId();
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventDTO> list = allExternalEvents.stream()
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> list = allExternalEvents.stream()
.filter(x -> "LoanTransactionMakeRepaymentPostBusinessEvent".equals(x.getType())).toList();
Assertions.assertEquals(1, list.size());
ExternalEventDTO event = list.get(0);
ExternalEventResponse event = list.get(0);
log.info(event.toString());
Object loanChargePaidByList = event.getPayLoad().get("loanChargePaidByList");
Assertions.assertEquals(111.0D, event.getPayLoad().get("feeChargesPortion"));
@@ -756,9 +756,9 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
deleteAllExternalEvents();
loanTransactionHelper.reverseRepayment(loanId.intValue(), repaymentId.intValue(), "17 January 2025");
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
// Verify that there were no reverse-replay event
List<ExternalEventDTO> list = allExternalEvents.stream() //
List<ExternalEventResponse> list = allExternalEvents.stream() //
.filter(x -> "LoanAdjustTransactionBusinessEvent".equals(x.getType()) //
&& x.getPayLoad().get("newTransactionDetail") != null //
&& x.getPayLoad().get("transactionToAdjust") != null) //
@@ -886,7 +886,7 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
loanTransactionHelper.reverseLoanTransaction(loanId, repaymentTransactionIdRef.get(), "01 February 2025");
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
// Verify no BulkEvent was created
Assertions.assertEquals(0, allExternalEvents.stream().filter(e -> e.getType().equals("BulkBusinessEvent")).count());
verifyBusinessEvents(//
@@ -969,8 +969,8 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
PostLoansLoanIdTransactionsResponse interestPaymentWaiverResponse = loanTransactionHelper.makeLoanRepayment(loanId,
"InterestPaymentWaiver", "17 January 2025", 10.0);
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventDTO> adjustments = allExternalEvents.stream()
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> adjustments = allExternalEvents.stream()
.filter(e -> "LoanAdjustTransactionBusinessEvent".equals(e.getType())).toList();
Assertions.assertEquals(0, adjustments.size());
Assertions.assertNotNull(interestPaymentWaiverResponse);
@@ -39,7 +39,7 @@ import org.apache.fineract.client.models.PostLoansLoanIdRequest;
import org.apache.fineract.client.models.PostLoansLoanIdResponse;
import org.apache.fineract.client.models.SavingsAccountTransactionsSearchResponse;
import org.apache.fineract.infrastructure.core.service.MathUtil;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.infrastructure.event.external.data.ExternalEventResponse;
import org.apache.fineract.integrationtests.common.ClientHelper;
import org.apache.fineract.integrationtests.common.CommonConstants;
import org.apache.fineract.integrationtests.common.ExternalEventConfigurationHelper;
@@ -263,14 +263,14 @@ public class LoanAccountDisbursementToSavingsWithAutoDownPaymentTest extends Bas
}
private void verifyBusinessEvent() {
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(requestSpec, responseSpec);
String type = "LoanBalanceChangedBusinessEvent";
final Optional<ExternalEventDTO> optionalExternalEventDTO = allExternalEvents.stream().filter(event -> event.getType().equals(type))
.findFirst();
final Optional<ExternalEventResponse> optionalExternalEventDTO = allExternalEvents.stream()
.filter(event -> event.getType().equals(type)).findFirst();
Assertions.assertTrue(optionalExternalEventDTO.isPresent());
final ExternalEventDTO externalEventDTO = optionalExternalEventDTO.get();
final ExternalEventResponse externalEventDTO = optionalExternalEventDTO.get();
Assertions.assertEquals(externalEventDTO.getPayLoad().get("enableDownPayment"), Boolean.TRUE);
Assertions.assertEquals(externalEventDTO.getPayLoad().get("enableAutoRepaymentForDownPayment"), Boolean.TRUE);
Assertions.assertEquals(externalEventDTO.getPayLoad().get("disbursedAmountPercentageForDownPayment"),
@@ -24,6 +24,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.fineract.client.models.BusinessStep;
import org.apache.fineract.client.models.BusinessStepRequest;
import org.apache.fineract.client.models.JobBusinessStepConfigData;
import org.apache.fineract.client.util.Calls;
public class BusinessStepHelper {
@@ -31,10 +32,9 @@ public class BusinessStepHelper {
public BusinessStepHelper() {}
public BusinessStepsSnapshot getConfigurationSnapshot(String jobName) {
List<BusinessStep> businessSteps = Calls
.ok(FineractClientHelper.getFineractClient().businessStepConfiguration.retrieveAllConfiguredBusinessStep(jobName))
.getBusinessSteps();
return new BusinessStepsSnapshot(jobName, businessSteps);
JobBusinessStepConfigData businessConfig = Calls
.ok(FineractClientHelper.getFineractClient().businessStepConfiguration.retrieveAllConfiguredBusinessStep(jobName));
return new BusinessStepsSnapshot(jobName, businessConfig.getBusinessSteps());
}
public void updateSteps(String jobName, String... steps) {
@@ -25,7 +25,7 @@ import java.util.Objects;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.infrastructure.event.external.data.ExternalEventResponse;
@Data
@AllArgsConstructor
@@ -35,7 +35,7 @@ public class BusinessEvent {
protected String type;
protected String businessDate;
public boolean verify(@NotNull ExternalEventDTO externalEvent, DateTimeFormatter formatter) {
public boolean verify(@NotNull ExternalEventResponse externalEvent, DateTimeFormatter formatter) {
var businessDate = LocalDate.parse(getBusinessDate(), formatter);
return Objects.equals(externalEvent.getType(), getType()) && Objects.equals(externalEvent.getBusinessDate(), businessDate);
@@ -26,11 +26,11 @@ import java.util.List;
import java.util.Map;
import lombok.Builder;
import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.client.models.CommandProcessingResult;
import org.apache.fineract.client.models.ExternalEventConfigurationCommand;
import org.apache.fineract.client.models.ExternalEventConfigurationUpdateRequest;
import org.apache.fineract.client.models.ExternalEventConfigurationUpdateResponse;
import org.apache.fineract.client.util.Calls;
import org.apache.fineract.client.util.JSON;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.infrastructure.event.external.data.ExternalEventResponse;
import org.apache.fineract.integrationtests.common.ExternalEventConfigurationHelper;
import org.apache.fineract.integrationtests.common.FineractClientHelper;
import org.apache.fineract.integrationtests.common.Utils;
@@ -78,24 +78,24 @@ public final class ExternalEventHelper {
// Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long,
// org.apache.fineract.client.models.PostLoansLoanIdRequest)
@Deprecated(forRemoval = true)
public static List<ExternalEventDTO> getAllExternalEvents(final RequestSpecification requestSpec,
public static List<ExternalEventResponse> getAllExternalEvents(final RequestSpecification requestSpec,
final ResponseSpecification responseSpec) {
final String url = "/fineract-provider/api/v1/internal/externalevents?" + Utils.TENANT_IDENTIFIER;
log.info("---------------------------------GETTING ALL EXTERNAL EVENTS---------------------------------------------");
String response = Utils.performServerGet(requestSpec, responseSpec, url);
return GSON.fromJson(response, new TypeToken<List<ExternalEventDTO>>() {}.getType());
return GSON.fromJson(response, new TypeToken<List<ExternalEventResponse>>() {}.getType());
}
// TODO: Rewrite to use fineract-client instead!
// Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long,
// org.apache.fineract.client.models.PostLoansLoanIdRequest)
@Deprecated(forRemoval = true)
public static List<ExternalEventDTO> getAllExternalEvents(final RequestSpecification requestSpec,
public static List<ExternalEventResponse> getAllExternalEvents(final RequestSpecification requestSpec,
final ResponseSpecification responseSpec, Filter filter) {
final String url = "/fineract-provider/api/v1/internal/externalevents?" + filter.toQueryParams() + Utils.TENANT_IDENTIFIER;
log.info("---------------------------------GETTING ALL EXTERNAL EVENTS---------------------------------------------");
String response = Utils.performServerGet(requestSpec, responseSpec, url);
return GSON.fromJson(response, new TypeToken<List<ExternalEventDTO>>() {}.getType());
return GSON.fromJson(response, new TypeToken<List<ExternalEventResponse>>() {}.getType());
}
// TODO: Rewrite to use fineract-client instead!
@@ -122,9 +122,9 @@ public final class ExternalEventHelper {
}
public void configureBusinessEvent(String eventName, boolean enabled) {
CommandProcessingResult result = Calls
.ok(FineractClientHelper.getFineractClient().externalEventConfigurationApi.updateExternalEventConfigurationsDetails(
new ExternalEventConfigurationCommand().putExternalEventConfigurationsItem(eventName, enabled)));
ExternalEventConfigurationUpdateResponse result = Calls
.ok(FineractClientHelper.getFineractClient().externalEventConfigurationApi.updateExternalEventConfigurations("",
new ExternalEventConfigurationUpdateRequest().externalEventConfigurations(Map.of(eventName, enabled))));
Map<String, Object> changes = result.getChanges();
Assertions.assertNotNull(changes);
Assertions.assertInstanceOf(Map.class, changes);
@@ -24,7 +24,7 @@ import java.util.Map;
import java.util.Objects;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.infrastructure.event.external.data.ExternalEventResponse;
@EqualsAndHashCode(callSuper = true)
@Data
@@ -79,7 +79,7 @@ public class LoanAdjustTransactionBusinessEvent extends BusinessEvent {
}
@Override
public boolean verify(ExternalEventDTO externalEvent, DateTimeFormatter formatter) {
public boolean verify(ExternalEventResponse externalEvent, DateTimeFormatter formatter) {
final Object transactionToAdjust = externalEvent.getPayLoad().get("transactionToAdjust");
final Map<?, Object> transActionToAdjustMap = transactionToAdjust instanceof Map ? (Map<String, Object>) transactionToAdjust
: Collections.emptyMap();
@@ -26,7 +26,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.infrastructure.event.external.data.ExternalEventResponse;
@EqualsAndHashCode(callSuper = true)
@Data
@@ -54,7 +54,7 @@ public class LoanBusinessEvent extends BusinessEvent {
}
@Override
public boolean verify(ExternalEventDTO externalEvent, DateTimeFormatter formatter) {
public boolean verify(ExternalEventResponse externalEvent, DateTimeFormatter formatter) {
Object summaryRes = externalEvent.getPayLoad().get("summary");
Object statusRes = externalEvent.getPayLoad().get("status");
Map<String, Object> summary = summaryRes instanceof Map ? (Map<String, Object>) summaryRes : Map.of();
@@ -22,7 +22,7 @@ import java.time.format.DateTimeFormatter;
import java.util.Objects;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.infrastructure.event.external.data.ExternalEventResponse;
@EqualsAndHashCode(callSuper = true)
@Data
@@ -47,7 +47,7 @@ public class LoanTransactionBusinessEvent extends BusinessEvent {
}
@Override
public boolean verify(ExternalEventDTO externalEvent, DateTimeFormatter formatter) {
public boolean verify(ExternalEventResponse externalEvent, DateTimeFormatter formatter) {
Object amount = externalEvent.getPayLoad().get("amount");
Object outstandingLoanBalance = externalEvent.getPayLoad().get("outstandingLoanBalance");
Object principalPortion = externalEvent.getPayLoad().get("principalPortion");
@@ -67,7 +67,7 @@ import org.apache.fineract.client.models.PostLoansLoanIdTransactionsRequest;
import org.apache.fineract.client.models.PutGlobalConfigurationsRequest;
import org.apache.fineract.client.util.CallFailedRuntimeException;
import org.apache.fineract.infrastructure.configuration.api.GlobalConfigurationConstants;
import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO;
import org.apache.fineract.infrastructure.event.external.data.ExternalEventResponse;
import org.apache.fineract.integrationtests.BaseLoanIntegrationTest;
import org.apache.fineract.integrationtests.common.BusinessDateHelper;
import org.apache.fineract.integrationtests.common.BusinessStepHelper;
@@ -227,7 +227,7 @@ public class InitiateExternalAssetOwnerTransferTest extends BaseLoanIntegrationT
new BigDecimal("757.420000"), new BigDecimal("10.000000"), new BigDecimal("0.000000"),
new BigDecimal("0.000000")));
List<ExternalEventDTO> allExternalEvents = ExternalEventHelper.getAllExternalEvents(REQUEST_SPEC, RESPONSE_SPEC);
List<ExternalEventResponse> allExternalEvents = ExternalEventHelper.getAllExternalEvents(REQUEST_SPEC, RESPONSE_SPEC);
Assertions.assertEquals(1, allExternalEvents.size());
Assertions.assertEquals("LoanOwnershipTransferBusinessEvent", allExternalEvents.get(0).getType());
Assertions.assertEquals(Long.valueOf(loanID), allExternalEvents.get(0).getAggregateRootId());