diff --git a/core/src/main/java/com/abavilla/fpi/load/controller/load/CallbackResource.java b/core/src/main/java/com/abavilla/fpi/load/controller/load/CallbackResource.java index c61da25..0fe9ff0 100644 --- a/core/src/main/java/com/abavilla/fpi/load/controller/load/CallbackResource.java +++ b/core/src/main/java/com/abavilla/fpi/load/controller/load/CallbackResource.java @@ -21,10 +21,10 @@ import com.abavilla.fpi.fw.controller.AbsBaseResource; import com.abavilla.fpi.fw.util.MapperUtil; import com.abavilla.fpi.load.config.ApiKeyConfig; -import com.abavilla.fpi.load.dto.load.dtone.DVSCallbackDto; import com.abavilla.fpi.load.dto.load.gl.GLRewardsCallbackDto; import com.abavilla.fpi.load.entity.load.RewardsTransStatus; import com.abavilla.fpi.load.service.load.RewardsCallbackSvc; +import com.dtone.dvs.dto.Transaction; import com.fasterxml.jackson.databind.JsonNode; import io.netty.handler.codec.http.HttpResponseStatus; import io.smallrye.mutiny.Uni; @@ -54,7 +54,7 @@ public Uni callback(@PathParam("apiKey") String apiKey, if (StringUtils.equals(apiKey, apiKeyConfig.getGenericApiKey())) { return service.storeCallback(MapperUtil.convert(body, GLRewardsCallbackDto.class)); } else if (StringUtils.equals(apiKey, "intlprov")) { - return service.storeCallback(MapperUtil.convert(body, DVSCallbackDto.class)); + return service.storeCallback(MapperUtil.convert(body, Transaction.class)); } else { throw new WebApplicationException(Response .status(HttpResponseStatus.UNAUTHORIZED.code()) diff --git a/core/src/main/java/com/abavilla/fpi/load/dto/load/dtone/DVSCallbackDto.java b/core/src/main/java/com/abavilla/fpi/load/dto/load/dtone/DVSCallbackDto.java index bec1fcc..629f8fc 100644 --- a/core/src/main/java/com/abavilla/fpi/load/dto/load/dtone/DVSCallbackDto.java +++ b/core/src/main/java/com/abavilla/fpi/load/dto/load/dtone/DVSCallbackDto.java @@ -21,7 +21,6 @@ import java.util.List; import com.abavilla.fpi.fw.dto.AbsDto; -import com.dtone.dvs.dto.Benefit; import com.dtone.dvs.dto.Party; import com.dtone.dvs.dto.PartyIdentifier; import com.dtone.dvs.dto.Pin; @@ -29,9 +28,10 @@ import com.dtone.dvs.dto.Product; import com.dtone.dvs.dto.Promotion; import com.dtone.dvs.dto.Rates; +import com.dtone.dvs.dto.StatementIdentifier; import com.dtone.dvs.dto.Status; import com.dtone.dvs.dto.Values; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import io.quarkus.runtime.annotations.RegisterForReflection; import lombok.Data; import lombok.EqualsAndHashCode; @@ -41,25 +41,46 @@ @EqualsAndHashCode(callSuper = true) @NoArgsConstructor @RegisterForReflection +@JsonIgnoreProperties(ignoreUnknown = true) public class DVSCallbackDto extends AbsDto { - @JsonProperty("id") + private Long dtOneId; + private String externalId; + private String creationDate; + private String confirmationExpirationDate; + private String confirmationDate; + private Status status; + private String operatorReference; + private Pin pin; + private Product product; + private Prices prices; + private Rates rates; - private List benefits; + private List promotions; + private Values requestedValues; + private Values adjustedValues; + private Party sender; + private Party beneficiary; + private PartyIdentifier debitPartyIdentifier; + private PartyIdentifier creditPartyIdentifier; + + private StatementIdentifier statementIdentifier; + + private String callbackUrl; } diff --git a/core/src/main/java/com/abavilla/fpi/load/mapper/load/dtone/DTOneMapper.java b/core/src/main/java/com/abavilla/fpi/load/mapper/load/dtone/DTOneMapper.java index 0be580a..859e128 100644 --- a/core/src/main/java/com/abavilla/fpi/load/mapper/load/dtone/DTOneMapper.java +++ b/core/src/main/java/com/abavilla/fpi/load/mapper/load/dtone/DTOneMapper.java @@ -49,6 +49,9 @@ public interface DTOneMapper extends IMapper { @Mapping(target = "loadProvider", constant = LoadConst.PROV_DTONE) DVSCallback mapDTOneRespToEntity(DVSCallbackDto dto); + @Mapping(target = "dtOneId", source = "id") + DVSCallbackDto mapDTOneTransactionToCallbackDto(Transaction dto); + default String dtLdtToStr(LocalDateTime ldtTimestamp) { if (ldtTimestamp != null) { var formatter = DateTimeFormatter.ISO_DATE_TIME; diff --git a/core/src/main/java/com/abavilla/fpi/load/service/load/RewardsCallbackSvc.java b/core/src/main/java/com/abavilla/fpi/load/service/load/RewardsCallbackSvc.java index 0855e64..0c92e5a 100644 --- a/core/src/main/java/com/abavilla/fpi/load/service/load/RewardsCallbackSvc.java +++ b/core/src/main/java/com/abavilla/fpi/load/service/load/RewardsCallbackSvc.java @@ -27,7 +27,6 @@ import com.abavilla.fpi.fw.exceptions.ApiSvcEx; import com.abavilla.fpi.fw.service.AbsSvc; import com.abavilla.fpi.fw.util.DateUtil; -import com.abavilla.fpi.load.dto.load.dtone.DVSCallbackDto; import com.abavilla.fpi.load.dto.load.gl.GLRewardsCallbackDto; import com.abavilla.fpi.load.entity.dtone.DVSCallback; import com.abavilla.fpi.load.entity.load.CallBack; @@ -46,6 +45,7 @@ import com.abavilla.fpi.sms.ext.dto.MsgReqDto; import com.abavilla.fpi.sms.ext.rest.SmsApi; import com.abavilla.fpi.telco.ext.enums.ApiStatus; +import com.dtone.dvs.dto.Transaction; import com.google.i18n.phonenumbers.NumberParseException; import com.google.i18n.phonenumbers.PhoneNumberUtil; import io.quarkus.logging.Log; @@ -98,11 +98,12 @@ public Uni storeCallback(GLRewardsCallbackDto callbackDto) { LoadConst.PROV_GL, callbackDto.getBody().getTransactionId()); } - public Uni storeCallback(DVSCallbackDto callbackDto) { + public Uni storeCallback(Transaction dvsCallbackTransaction) { + var dvsCallbackDto = dtOneMapper.mapDTOneTransactionToCallbackDto(dvsCallbackTransaction); return storeCallback( - dtOneMapper.mapDTOneRespToEntity(callbackDto), - ApiStatus.fromDtOne(callbackDto.getStatus().getId()), - LoadConst.PROV_DTONE, callbackDto.getDtOneId()); + dtOneMapper.mapDTOneRespToEntity(dvsCallbackDto), + ApiStatus.fromDtOne(dvsCallbackDto.getStatus().getId()), + LoadConst.PROV_DTONE, dvsCallbackDto.getDtOneId()); } private Uni storeCallback(AbsMongoItem callbackResponse, ApiStatus status,