Refactor ChatLogDao to use Timestamp and update ChatMessageMapper with proper JSON serialization using Jackson.
This commit is contained in:
parent
1eb0aac97e
commit
04ca05cd14
|
|
@ -2,6 +2,9 @@ package com.alttd.altitudeweb.controllers.chat;
|
||||||
|
|
||||||
import com.alttd.altitudeweb.database.chat.ChatLogDao;
|
import com.alttd.altitudeweb.database.chat.ChatLogDao;
|
||||||
import com.alttd.altitudeweb.model.ChatMessageDto;
|
import com.alttd.altitudeweb.model.ChatMessageDto;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
|
@ -9,6 +12,8 @@ import java.util.UUID;
|
||||||
|
|
||||||
@UtilityClass
|
@UtilityClass
|
||||||
public class ChatMessageMapper {
|
public class ChatMessageMapper {
|
||||||
|
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper()
|
||||||
|
.registerModule(new JavaTimeModule());
|
||||||
|
|
||||||
public ChatMessage fromDto(ChatMessageDto dto) {
|
public ChatMessage fromDto(ChatMessageDto dto) {
|
||||||
return ChatMessage.builder()
|
return ChatMessage.builder()
|
||||||
|
|
@ -23,7 +28,7 @@ public class ChatMessageMapper {
|
||||||
public ChatMessage fromDao(ChatLogDao dao) {
|
public ChatMessage fromDao(ChatLogDao dao) {
|
||||||
return ChatMessage.builder()
|
return ChatMessage.builder()
|
||||||
.uuid(UUID.fromString(dao.getUuid()))
|
.uuid(UUID.fromString(dao.getUuid()))
|
||||||
.timestamp(Instant.ofEpochMilli(dao.getTimeStamp()))
|
.timestamp(dao.getTimeStamp().toInstant())
|
||||||
.server(dao.getServer())
|
.server(dao.getServer())
|
||||||
.messageJson(dao.getMiniMessage())
|
.messageJson(dao.getMiniMessage())
|
||||||
.notBlocked(!dao.isBlocked())
|
.notBlocked(!dao.isBlocked())
|
||||||
|
|
@ -31,6 +36,10 @@ public class ChatMessageMapper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String toJson(ChatMessage chatMessage) {
|
public static String toJson(ChatMessage chatMessage) {
|
||||||
return "{\"uuid\":\"" + chatMessage.getUuid() + "\",\"timestamp\":\"" + chatMessage.getTimestamp() + "\",\"server\":\"" + chatMessage.getServer() + "\",\"messageJson\":\"" + chatMessage.getMessageJson() + "\",\"notBlocked\":\"" + chatMessage.isNotBlocked() + "\"}";
|
try {
|
||||||
|
return OBJECT_MAPPER.writeValueAsString(chatMessage);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
throw new IllegalStateException("Failed to serialize ChatMessage to JSON: " + chatMessage.getUuid(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,14 @@ package com.alttd.altitudeweb.database.chat;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
@Builder
|
@Builder
|
||||||
@Getter
|
@Getter
|
||||||
public class ChatLogDao {
|
public class ChatLogDao {
|
||||||
|
|
||||||
private final String uuid;
|
private final String uuid;
|
||||||
private final long timeStamp;
|
private final Timestamp timeStamp;
|
||||||
private final String server;
|
private final String server;
|
||||||
private final String miniMessage;
|
private final String miniMessage;
|
||||||
private final boolean blocked;
|
private final boolean blocked;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user