Refactor ChatLogDao to use Timestamp and update ChatMessageMapper with proper JSON serialization using Jackson.

This commit is contained in:
akastijn 2026-07-19 00:12:12 +02:00
parent 1eb0aac97e
commit 04ca05cd14
2 changed files with 14 additions and 3 deletions

View File

@ -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);
}
} }
} }

View File

@ -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;