From fdedd75807271485dbeb258496c005d1f8704610 Mon Sep 17 00:00:00 2001 From: Zhongheng Liu Date: Tue, 2 Jan 2024 17:44:24 +0200 Subject: IMPL server-side recover message history API --- .../me/imsonmia/epqapi/controller/MessageController.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/main/java/me/imsonmia/epqapi/controller/MessageController.java') diff --git a/src/main/java/me/imsonmia/epqapi/controller/MessageController.java b/src/main/java/me/imsonmia/epqapi/controller/MessageController.java index 781b6ff..a6cefd5 100644 --- a/src/main/java/me/imsonmia/epqapi/controller/MessageController.java +++ b/src/main/java/me/imsonmia/epqapi/controller/MessageController.java @@ -1,5 +1,6 @@ package me.imsonmia.epqapi.controller; +import java.time.Instant; import java.util.ArrayList; import org.springframework.messaging.handler.annotation.MessageMapping; @@ -24,9 +25,16 @@ public class MessageController { // Forward message to subscribers of Stomp endpoint return message; } - @GetMapping("/chat/history/{from}") - public ArrayList getMessagesFromTimestamp(@PathVariable(value = "from") Long fromTimestamp) { - return new ArrayList(); + @GetMapping("/api/v1/chat/history/{from}") + public ArrayList getMessagesFromTimestamp(@PathVariable(value = "from") long fromTimestamp) { + ArrayList messages = new ArrayList<>(); + Instant targetInstant = Instant.ofEpochMilli(fromTimestamp); + for (Message msg : repository.findAll()) { + Instant t = Instant.ofEpochMilli(msg.getTimestamp()); + if (t.isBefore(targetInstant)) {continue;} + messages.add(msg); + } + return messages; } // @GetMapping("/msg/{id}") // public ChatMessage getMessageById(@PathVariable(value = "id") Long id) { -- cgit