FINERACT-2181: Add customData field to LoanChargeBusinessEvent
This commit is contained in:
+1
@@ -29,6 +29,7 @@ import org.mapstruct.Mapping;
|
||||
public interface LoanChargeDataMapper {
|
||||
|
||||
@Mapping(target = "externalOwnerId", ignore = true)
|
||||
@Mapping(target = "customData", ignore = true)
|
||||
LoanChargeDataV1 map(LoanChargeData source);
|
||||
|
||||
LoanChargeDataRangeViewV1 mapRangeView(LoanChargeData source);
|
||||
|
||||
+12
-3
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.event.external.service.serialization.serializer.loan;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.avro.generic.GenericContainer;
|
||||
import org.apache.fineract.avro.generator.ByteBufferSerializable;
|
||||
@@ -25,17 +26,18 @@ import org.apache.fineract.avro.loan.v1.LoanChargeDataV1;
|
||||
import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
|
||||
import org.apache.fineract.infrastructure.event.business.domain.loan.charge.LoanChargeBusinessEvent;
|
||||
import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan.LoanChargeDataMapper;
|
||||
import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
|
||||
import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.ExternalEventCustomDataSerializer;
|
||||
import org.apache.fineract.portfolio.loanaccount.data.LoanChargeData;
|
||||
import org.apache.fineract.portfolio.loanaccount.service.LoanChargeReadPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class LoanChargeBusinessEventSerializer implements BusinessEventSerializer {
|
||||
public class LoanChargeBusinessEventSerializer extends AbstractLoanBusinessEventSerializer<LoanChargeBusinessEvent> {
|
||||
|
||||
private final LoanChargeReadPlatformService service;
|
||||
private final LoanChargeDataMapper mapper;
|
||||
private final List<ExternalEventCustomDataSerializer<LoanChargeBusinessEvent>> externalEventCustomDataSerializers;
|
||||
|
||||
@Override
|
||||
public <T> boolean canSerialize(BusinessEvent<T> event) {
|
||||
@@ -46,11 +48,18 @@ public class LoanChargeBusinessEventSerializer implements BusinessEventSerialize
|
||||
public <T> ByteBufferSerializable toAvroDTO(BusinessEvent<T> rawEvent) {
|
||||
LoanChargeBusinessEvent event = (LoanChargeBusinessEvent) rawEvent;
|
||||
LoanChargeData data = service.retrieveLoanChargeDetails(event.get().getId(), event.get().getLoan().getId());
|
||||
return mapper.map(data);
|
||||
final LoanChargeDataV1 loanChargeDataV1 = mapper.map(data);
|
||||
loanChargeDataV1.setCustomData(collectCustomData(event));
|
||||
return loanChargeDataV1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends GenericContainer> getSupportedSchema() {
|
||||
return LoanChargeDataV1.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<ExternalEventCustomDataSerializer<LoanChargeBusinessEvent>> getExternalEventCustomDataSerializers() {
|
||||
return externalEventCustomDataSerializers;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user