|
|
|
@ -16,6 +16,7 @@ import java.util.*;
|
|
|
|
public class MessageUtils {
|
|
|
|
public class MessageUtils {
|
|
|
|
private MessageUtils() {};
|
|
|
|
private MessageUtils() {};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
|
public static ReceiveMessageDto toReceiveMessageDto(String messageJsonString) throws IllegalMessageException, NullMessageException, InCompleteMessageException {
|
|
|
|
public static ReceiveMessageDto toReceiveMessageDto(String messageJsonString) throws IllegalMessageException, NullMessageException, InCompleteMessageException {
|
|
|
|
ReceiveMessageDto receiveMessageDto = null;
|
|
|
|
ReceiveMessageDto receiveMessageDto = null;
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
@ -25,36 +26,29 @@ public class MessageUtils {
|
|
|
|
if(map == null) {
|
|
|
|
if(map == null) {
|
|
|
|
throw new NullMessageException("");
|
|
|
|
throw new NullMessageException("");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(map.get("sender") == null) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("sender 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if(!(map.get("sender") instanceof Map)) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("sender 엘리먼트의 데이터가 객체타입이 아닙니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Map<String, Object> senderMap = (Map<String, Object>)map.get("sender");
|
|
|
|
|
|
|
|
String senderHostId;
|
|
|
|
String senderHostId;
|
|
|
|
if(senderMap.get("hostId") == null) {
|
|
|
|
if(map.get("senderHostId") == null) {
|
|
|
|
throw new InCompleteMessageException("sender.hostId 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
throw new InCompleteMessageException("senderHostId 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if(StringUtils.isBlank(String.valueOf(senderMap.get("hostId")))) {
|
|
|
|
else if(StringUtils.isBlank(String.valueOf(map.get("senderHostId")))) {
|
|
|
|
throw new InCompleteMessageException("sender.hostId 값을 찾을 수 없습니다.");
|
|
|
|
throw new InCompleteMessageException("senderHostId 값을 찾을 수 없습니다.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
senderHostId = String.valueOf(senderMap.get("hostId"));
|
|
|
|
senderHostId = String.valueOf(map.get("senderHostId"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
long senderTimestamp = 0;
|
|
|
|
long senderTimestamp = 0;
|
|
|
|
if(senderMap.get("timestamp") == null) {
|
|
|
|
if(map.get("senderTimestamp") == null) {
|
|
|
|
throw new InCompleteMessageException("sender.timestamp 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
throw new InCompleteMessageException("senderTimestamp 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if(StringUtils.isBlank(String.valueOf(senderMap.get("timestamp")))) {
|
|
|
|
else if(StringUtils.isBlank(String.valueOf(map.get("senderTimestamp")))) {
|
|
|
|
throw new InCompleteMessageException("sender.timestamp 값을 찾을 수 없습니다.");
|
|
|
|
throw new InCompleteMessageException("senderTimestamp 값을 찾을 수 없습니다.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
String senderTimeStampString = String.valueOf(senderMap.get("timestamp"));
|
|
|
|
String senderTimeStampString = String.valueOf(map.get("senderTimestamp"));
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
senderTimestamp = Long.parseLong(senderTimeStampString);
|
|
|
|
senderTimestamp = Long.parseLong(senderTimeStampString);
|
|
|
|
} catch (NumberFormatException e) {
|
|
|
|
} catch (NumberFormatException e) {
|
|
|
|
throw new InCompleteMessageException("sender.timestamp 값의 형식이 숫자형식이 아닙니다. " + senderTimeStampString);
|
|
|
|
throw new InCompleteMessageException("senderTimestamp 값의 형식이 숫자형식이 아닙니다. " + senderTimeStampString);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
String messageUuid;
|
|
|
|
String messageUuid;
|
|
|
|
@ -73,35 +67,6 @@ public class MessageUtils {
|
|
|
|
throw new InCompleteMessageException("messageUuid 값의 형식이 숫자형식이 아닙니다. " + messageUuid);
|
|
|
|
throw new InCompleteMessageException("messageUuid 값의 형식이 숫자형식이 아닙니다. " + messageUuid);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
long receivedTimestamp = System.currentTimeMillis();
|
|
|
|
|
|
|
|
if(map.get("recipient") == null) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("recipient 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if(!(map.get("recipient") instanceof Map)) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("recipient 엘리먼트의 데이터가 객체타입이 아닙니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Map<String, Object> recipientMap = (Map<String, Object>)map.get("recipient");
|
|
|
|
|
|
|
|
//TODO recipient
|
|
|
|
|
|
|
|
String recipientHostId;
|
|
|
|
|
|
|
|
if(recipientMap.get("hostId") == null) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("recipient.hostId 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if(StringUtils.isBlank(String.valueOf(recipientMap.get("hostId")))) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("recipient.hostId 값을 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
recipientHostId = String.valueOf(recipientMap.get("hostId"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
String recipientDropBoxId;
|
|
|
|
|
|
|
|
if(recipientMap.get("dropBoxId") == null) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("recipient.dropBoxId 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if(StringUtils.isBlank(String.valueOf(recipientMap.get("dropBoxId")))) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("recipient.dropBoxId 값을 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
recipientDropBoxId = String.valueOf(recipientMap.get("dropBoxId"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
AgentConfigDto.MessageType messageType;
|
|
|
|
AgentConfigDto.MessageType messageType;
|
|
|
|
if(map.get("messageType") == null) {
|
|
|
|
if(map.get("messageType") == null) {
|
|
|
|
throw new InCompleteMessageException("messageType 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
throw new InCompleteMessageException("messageType 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
@ -116,6 +81,41 @@ public class MessageUtils {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
messageType = EnumUtils.getEnum(AgentConfigDto.MessageType.class, messageTypeString);
|
|
|
|
messageType = EnumUtils.getEnum(AgentConfigDto.MessageType.class, messageTypeString);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
long receivedTimestamp = 0;
|
|
|
|
|
|
|
|
if(map.get("receivedTimestamp") == null) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("receivedTimestamp 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if(StringUtils.isBlank(String.valueOf(map.get("receivedTimestamp")))) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("receivedTimestamp 값을 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
String receivedTimestampString = String.valueOf(map.get("receivedTimestamp"));
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
receivedTimestamp = Long.parseLong(receivedTimestampString);
|
|
|
|
|
|
|
|
} catch (NumberFormatException e) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("receivedTimestamp 값의 형식이 숫자형식이 아닙니다. " + receivedTimestampString);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
String recipientHostId;
|
|
|
|
|
|
|
|
if(map.get("recipientHostId") == null) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("recipientHostId 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if(StringUtils.isBlank(String.valueOf(map.get("recipientHostId")))) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("recipientHostId 값을 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
recipientHostId = String.valueOf(map.get("recipientHostId"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
String recipientDropBoxId;
|
|
|
|
|
|
|
|
if(map.get("recipientDropBoxId") == null) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("recipientDropBoxId 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if(StringUtils.isBlank(String.valueOf(map.get("recipientDropBoxId")))) {
|
|
|
|
|
|
|
|
throw new InCompleteMessageException("recipientDropBoxId 값을 찾을 수 없습니다.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
recipientDropBoxId = String.valueOf(map.get("recipientDropBoxId"));
|
|
|
|
|
|
|
|
}
|
|
|
|
String dataString;
|
|
|
|
String dataString;
|
|
|
|
if(map.get("data") == null) {
|
|
|
|
if(map.get("data") == null) {
|
|
|
|
throw new InCompleteMessageException("data 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
throw new InCompleteMessageException("data 엘리먼트를 찾을 수 없습니다.");
|
|
|
|
|