Skip to content

Commit

Permalink
fix: Message model update (#15)
Browse files Browse the repository at this point in the history
Vitolo-Andrea authored Dec 2, 2024
1 parent 6df4644 commit 4de5467
Showing 12 changed files with 127 additions and 59 deletions.
37 changes: 37 additions & 0 deletions src/main/java/it/gov/pagopa/notifier/dto/BaseMessage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package it.gov.pagopa.notifier.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

@AllArgsConstructor
@Data
@NoArgsConstructor
@SuperBuilder
public class BaseMessage {
private String messageId;
private String recipientId;
private String triggerDateTime;
private String senderDescription;
private String messageUrl;
private String originId;
private String content;
private Boolean associatedPayment;
private String idPsp;

public static BaseMessage extractBaseFields(MessageDTO messageDTO) {
return BaseMessage.builder()
.messageId(messageDTO.getMessageId())
.recipientId(messageDTO.getRecipientId())
.triggerDateTime(messageDTO.getTriggerDateTime())
.senderDescription(messageDTO.getSenderDescription())
.messageUrl(messageDTO.getMessageUrl())
.originId(messageDTO.getOriginId())
.content(messageDTO.getContent())
.associatedPayment(messageDTO.getAssociatedPayment())
.idPsp(messageDTO.getIdPsp())
.build();
}

}
39 changes: 16 additions & 23 deletions src/main/java/it/gov/pagopa/notifier/dto/MessageDTO.java
Original file line number Diff line number Diff line change
@@ -1,42 +1,35 @@
package it.gov.pagopa.notifier.dto;


import com.fasterxml.jackson.annotation.JsonAlias;
import it.gov.pagopa.common.utils.CommonUtilities;
import it.gov.pagopa.notifier.enums.Channel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;


@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@Data
@NoArgsConstructor
@Builder
public class MessageDTO {
private String messageId;
private String recipientId;
private String triggerDateTime;
private String senderDescription;
private String messageUrl;
private String originId;
@JsonAlias("message")
private String content;
private String entityId;
private Boolean associatedPayment;
private String idPsp;
@SuperBuilder
public class MessageDTO extends BaseMessage {

private Channel channel;

@Override
public String toString() {

return "MessageDTO{" +
"messageId='" + messageId + '\'' +
", recipientId='" + CommonUtilities.createSHA256(recipientId) + '\'' +
", triggerDateTime='" + triggerDateTime + '\'' +
", senderDescription='" + senderDescription + '\'' +
", messageUrl='" + messageUrl + '\'' +
", originId='" + originId + '\'' +
"messageId='" + getMessageId()+ '\'' +
", recipientId='" + CommonUtilities.createSHA256(getRecipientId()) + '\'' +
", triggerDateTime='" + getTriggerDateTime() + '\'' +
", senderDescription='" + getSenderDescription() + '\'' +
", messageUrl='" + getMessageUrl() + '\'' +
", originId='" + getOriginId() + '\'' +
", content='" + getContent() + '\'' +
", idPsp='" + getIdPsp() + '\'' +
", channel='" + channel + '\'' +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package it.gov.pagopa.notifier.model.mapper;
package it.gov.pagopa.notifier.dto.mapper;

import it.gov.pagopa.notifier.dto.MessageDTO;
import it.gov.pagopa.notifier.model.Message;
@@ -9,14 +9,16 @@ public class MessageMapperObjectToDTO {

public MessageDTO map(Message message){
return MessageDTO.builder()
.recipientId(message.getRecipientId())
.messageId(message.getMessageId())
.senderDescription(message.getSenderDescription())
.recipientId(message.getRecipientId())
.triggerDateTime(message.getTriggerDateTime())
.senderDescription(message.getSenderDescription())
.messageUrl(message.getMessageUrl())
.content(message.getContent())
.originId(message.getOriginId())
.content(message.getContent())
.associatedPayment(message.getAssociatedPayment())
.idPsp(message.getIdPsp())
.channel(message.getChannel())
.build();

}
16 changes: 16 additions & 0 deletions src/main/java/it/gov/pagopa/notifier/enums/Channel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package it.gov.pagopa.notifier.enums;

import lombok.Getter;

@Getter
public enum Channel {

SEND("SEND");

private final String status;

Channel(String status) {
this.status = status;
}

}
17 changes: 11 additions & 6 deletions src/main/java/it/gov/pagopa/notifier/model/Message.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,24 @@
package it.gov.pagopa.notifier.model;

import it.gov.pagopa.notifier.enums.Channel;
import lombok.Builder;
import lombok.Data;


@Data
@Builder
public class Message {

private Boolean associatedPayment;
private String content;
private String entityId;
private String idPsp;
private String messageId;
private String recipientId;
private String triggerDateTime;
private String senderDescription;
private String messageUrl;
private String originId;
private String content;
private String entityId;
private Boolean associatedPayment;
private String recipientId;
private String senderDescription;
private Channel channel;
private String triggerDateTime;
private String messageRegistrationDate;
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
package it.gov.pagopa.notifier.dto.mapper;
package it.gov.pagopa.notifier.model.mapper;

import it.gov.pagopa.notifier.dto.MessageDTO;
import it.gov.pagopa.notifier.model.Message;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;

@Service
public class MessageMapperDTOToObject {

public Message map(MessageDTO messageDTO, String entityId){
return Message.builder()
.associatedPayment(messageDTO.getAssociatedPayment())
.content(messageDTO.getContent())
.entityId(entityId)
.idPsp(messageDTO.getIdPsp())
.messageId(messageDTO.getMessageId())
.recipientId(messageDTO.getRecipientId())
.triggerDateTime(messageDTO.getTriggerDateTime())
.messageUrl(messageDTO.getMessageUrl())
.content(messageDTO.getContent())
.originId(messageDTO.getOriginId())
.entityId(entityId)
.associatedPayment(true)
.recipientId(messageDTO.getRecipientId())
.senderDescription(messageDTO.getSenderDescription())
.channel(messageDTO.getChannel())
.triggerDateTime(messageDTO.getTriggerDateTime())
.messageRegistrationDate(String.valueOf(LocalDateTime.now()))
.build();
}
}
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
import it.gov.pagopa.notifier.dto.TokenDTO;
import it.gov.pagopa.notifier.dto.TppDTO;
import it.gov.pagopa.notifier.model.Message;
import it.gov.pagopa.notifier.dto.mapper.MessageMapperDTOToObject;
import it.gov.pagopa.notifier.model.mapper.MessageMapperDTOToObject;
import it.gov.pagopa.notifier.repository.MessageRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
@@ -17,6 +17,8 @@

import java.util.Map;

import static it.gov.pagopa.notifier.dto.BaseMessage.extractBaseFields;

@Service
@Slf4j
public class NotifyServiceImpl implements NotifyService {
@@ -85,12 +87,11 @@ private Mono<TokenDTO> getToken(TppDTO tppDTO, String messageId, long retry) {

private Mono<String> toUrl(MessageDTO messageDTO, TppDTO tppDTO, TokenDTO token, long retry) {
log.info("[NOTIFY-SERVICE][TO-URL] Sending message {} to URL: {} for TPP: {} at try {}", messageDTO.getMessageId(), tppDTO.getMessageUrl(), tppDTO.getEntityId(), retry);
messageDTO.setIdPsp(tppDTO.getIdPsp());
return webClient.post()
.uri(tppDTO.getMessageUrl())
.header(HttpHeaders.AUTHORIZATION, "Bearer " + token.getAccessToken())
.contentType(MediaType.APPLICATION_JSON)
.bodyValue(messageDTO)
.bodyValue(extractBaseFields(messageDTO))
.retrieve()
.bodyToMono(String.class)
.doOnSuccess(response -> {
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package it.gov.pagopa.notifier.stub.service;

import it.gov.pagopa.notifier.dto.MessageDTO;
import it.gov.pagopa.notifier.model.mapper.MessageMapperObjectToDTO;
import it.gov.pagopa.notifier.dto.mapper.MessageMapperObjectToDTO;
import it.gov.pagopa.notifier.repository.MessageRepository;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package it.gov.pagopa.notifier.service;

import it.gov.pagopa.notifier.dto.MessageDTO;
import it.gov.pagopa.notifier.dto.mapper.MessageMapperDTOToObject;
import it.gov.pagopa.notifier.model.mapper.MessageMapperDTOToObject;
import it.gov.pagopa.notifier.repository.MessageRepository;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
3 changes: 1 addition & 2 deletions src/test/java/it/gov/pagopa/notifier/utils/TestUtils.java
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@

public class TestUtils {

public static final TppDTO TPP_DTO = TppDTOFaker.mockInstance();
public static final TppDTO TPP_DTO = TppDTOFaker.mockInstance();
public static final List<TppDTO> TPP_DTO_LIST = List.of(TPP_DTO);
public static final String TPP_ID = TPP_DTO.getTppId();
public static final List<String> TPP_ID_STRING_LIST = List.of(TPP_ID);
@@ -22,7 +22,6 @@ public class TestUtils {
public static final Message<String> QUEUE_NOTIFIER_STRING_ERROR = NotifierErrorQueueFaker.mockStringInstance(MESSAGE_DTO,TPP_DTO);
public static final Message<MessageDTO> QUEUE_MESSAGE_CORE = MessageCoreQueueFaker.mockInstance(MESSAGE_DTO);
public static final Message<NotifyErrorQueuePayload> QUEUE_NOTIFIER_ERROR = NotifierErrorQueueFaker.mockInstance(MESSAGE_DTO,TPP_DTO);

public static final NotifyErrorQueuePayload NOTIFIER_ERROR_PAYLOAD = new NotifyErrorQueuePayload(TPP_DTO,MESSAGE_DTO);
public static final String MESSAGE_URL = "/message";
public static final String AUTHENTICATION_URL = "/auth";
Original file line number Diff line number Diff line change
@@ -3,19 +3,24 @@


import it.gov.pagopa.notifier.dto.MessageDTO;
import it.gov.pagopa.notifier.enums.Channel;

public class MessageDTOFaker {
public static MessageDTO mockInstance() {
return MessageDTO.builder()
.messageId("messageId")
.messageUrl("messageUrl")
.content("message")
.triggerDateTime("date")
.senderDescription("sender")
.recipientId("recipientId")
.originId("originId")
.associatedPayment(true)
.build();
}
public static MessageDTO mockInstance() {
return MessageDTO.builder()
.messageId("messageId")
.recipientId("recipientId")
.triggerDateTime("triggerDateTime")
.senderDescription("sender")
.messageUrl("messageUrl")
.originId("originId")
.content("message")
.associatedPayment(true)
.idPsp("originId")
.channel(Channel.valueOf("SEND"))
.build();

}


}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package it.gov.pagopa.notifier.utils.faker;

import it.gov.pagopa.notifier.enums.Channel;
import it.gov.pagopa.notifier.model.Message;

public class MessageFaker {
@@ -8,12 +9,15 @@ public static Message mockInstance() {
.messageId("messageId")
.messageUrl("messageUrl")
.content("message")
.triggerDateTime("date")
.triggerDateTime("triggerDateTime")
.senderDescription("sender")
.recipientId("recipientId")
.originId("originId")
.entityId("entityId")
.idPsp("idPsp")
.associatedPayment(true)
.messageRegistrationDate("messageRegistrationDate")
.channel(Channel.valueOf("SEND"))
.build();

}

0 comments on commit 4de5467

Please sign in to comment.