diff options
author | Zhongheng Liu <z.liu@outlook.com.gr> | 2024-01-02 17:44:24 +0200 |
---|---|---|
committer | Zhongheng Liu <z.liu@outlook.com.gr> | 2024-01-02 17:44:24 +0200 |
commit | fdedd75807271485dbeb258496c005d1f8704610 (patch) | |
tree | e1e569280bf00683815d54ed9768f64fedba0c2d | |
parent | f2d3c948bf424c116c151c45b1a0f6f19e3c24d6 (diff) | |
download | epq-api-fdedd75807271485dbeb258496c005d1f8704610.tar.gz epq-api-fdedd75807271485dbeb258496c005d1f8704610.tar.bz2 epq-api-fdedd75807271485dbeb258496c005d1f8704610.zip |
IMPL server-side recover message history API
-rw-r--r-- | src/main/java/me/imsonmia/epqapi/controller/MessageController.java | 14 | ||||
-rw-r--r-- | src/main/java/me/imsonmia/epqapi/model/Message.java | 8 |
2 files changed, 19 insertions, 3 deletions
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<Message> getMessagesFromTimestamp(@PathVariable(value = "from") Long fromTimestamp) { - return new ArrayList<Message>(); + @GetMapping("/api/v1/chat/history/{from}") + public ArrayList<Message> getMessagesFromTimestamp(@PathVariable(value = "from") long fromTimestamp) { + ArrayList<Message> 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) { diff --git a/src/main/java/me/imsonmia/epqapi/model/Message.java b/src/main/java/me/imsonmia/epqapi/model/Message.java index 1de1e15..1714769 100644 --- a/src/main/java/me/imsonmia/epqapi/model/Message.java +++ b/src/main/java/me/imsonmia/epqapi/model/Message.java @@ -1,5 +1,6 @@ package me.imsonmia.epqapi.model; + import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; @@ -14,6 +15,7 @@ public class Message { private String from; private String to; private String content; + private Long timestamp; public Long getId() { return id; } @@ -35,4 +37,10 @@ public class Message { public void setContent(String content) { this.content = content; } + public Long getTimestamp() { + return timestamp; + } + public void setTimestamp(Long timestamp) { + this.timestamp = timestamp; + } } |