From f2d3c948bf424c116c151c45b1a0f6f19e3c24d6 Mon Sep 17 00:00:00 2001 From: Zhongheng Liu Date: Tue, 2 Jan 2024 17:31:58 +0200 Subject: [PATCH] Added message database support in repo Started on history fetching with getMapping --- ...ageController.java => MessageController.java} | 16 +++++++++++++++- .../java/me/imsonmia/epqapi/model/Message.java | 13 +++++++++++++ .../epqapi/repository/ChatMessageRepository.java | 8 -------- .../epqapi/repository/MessageRepository.java | 7 +++++++ 4 files changed, 35 insertions(+), 9 deletions(-) rename src/main/java/me/imsonmia/epqapi/controller/{ChatMessageController.java => MessageController.java} (51%) delete mode 100644 src/main/java/me/imsonmia/epqapi/repository/ChatMessageRepository.java create mode 100644 src/main/java/me/imsonmia/epqapi/repository/MessageRepository.java diff --git a/src/main/java/me/imsonmia/epqapi/controller/ChatMessageController.java b/src/main/java/me/imsonmia/epqapi/controller/MessageController.java similarity index 51% rename from src/main/java/me/imsonmia/epqapi/controller/ChatMessageController.java rename to src/main/java/me/imsonmia/epqapi/controller/MessageController.java index 7bfcba6..781b6ff 100644 --- a/src/main/java/me/imsonmia/epqapi/controller/ChatMessageController.java +++ b/src/main/java/me/imsonmia/epqapi/controller/MessageController.java @@ -1,19 +1,33 @@ package me.imsonmia.epqapi.controller; +import java.util.ArrayList; + import org.springframework.messaging.handler.annotation.MessageMapping; import org.springframework.messaging.handler.annotation.SendTo; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import me.imsonmia.epqapi.model.Message; +import me.imsonmia.epqapi.repository.MessageRepository; @Controller // @RequestMapping("/api/v1") -public class ChatMessageController { +public class MessageController { + private MessageRepository repository; @MessageMapping("/chat") @SendTo("/sub/chat") public Message messageHandler(Message message) throws Exception { + // Add message to repository + repository.save(message); + + // 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("/msg/{id}") // public ChatMessage getMessageById(@PathVariable(value = "id") Long id) { // return chatMessageRepository.findById(id).get(); diff --git a/src/main/java/me/imsonmia/epqapi/model/Message.java b/src/main/java/me/imsonmia/epqapi/model/Message.java index 1e7844a..1de1e15 100644 --- a/src/main/java/me/imsonmia/epqapi/model/Message.java +++ b/src/main/java/me/imsonmia/epqapi/model/Message.java @@ -1,9 +1,22 @@ package me.imsonmia.epqapi.model; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "message") public class Message { + @GeneratedValue + @Id + private Long id; private String from; private String to; private String content; + public Long getId() { + return id; + } public String getFrom() { return this.from; } diff --git a/src/main/java/me/imsonmia/epqapi/repository/ChatMessageRepository.java b/src/main/java/me/imsonmia/epqapi/repository/ChatMessageRepository.java deleted file mode 100644 index 8ee82e2..0000000 --- a/src/main/java/me/imsonmia/epqapi/repository/ChatMessageRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package me.imsonmia.epqapi.repository; - -import org.springframework.data.repository.CrudRepository; - -import me.imsonmia.epqapi.model.ChatMessage; - -public interface ChatMessageRepository extends CrudRepository { -} diff --git a/src/main/java/me/imsonmia/epqapi/repository/MessageRepository.java b/src/main/java/me/imsonmia/epqapi/repository/MessageRepository.java new file mode 100644 index 0000000..631ea3c --- /dev/null +++ b/src/main/java/me/imsonmia/epqapi/repository/MessageRepository.java @@ -0,0 +1,7 @@ +package me.imsonmia.epqapi.repository; + +import org.springframework.data.repository.CrudRepository; +import me.imsonmia.epqapi.model.Message; + +public interface MessageRepository extends CrudRepository { +}