From f2d3c948bf424c116c151c45b1a0f6f19e3c24d6 Mon Sep 17 00:00:00 2001 From: Zhongheng Liu Date: Tue, 2 Jan 2024 17:31:58 +0200 Subject: Added message database support in repo Started on history fetching with getMapping --- .../epqapi/controller/ChatMessageController.java | 21 ------------- .../epqapi/controller/MessageController.java | 35 ++++++++++++++++++++++ .../java/me/imsonmia/epqapi/model/Message.java | 13 ++++++++ .../epqapi/repository/ChatMessageRepository.java | 8 ----- .../epqapi/repository/MessageRepository.java | 7 +++++ 5 files changed, 55 insertions(+), 29 deletions(-) delete mode 100644 src/main/java/me/imsonmia/epqapi/controller/ChatMessageController.java create mode 100644 src/main/java/me/imsonmia/epqapi/controller/MessageController.java delete mode 100644 src/main/java/me/imsonmia/epqapi/repository/ChatMessageRepository.java create mode 100644 src/main/java/me/imsonmia/epqapi/repository/MessageRepository.java (limited to 'src') diff --git a/src/main/java/me/imsonmia/epqapi/controller/ChatMessageController.java b/src/main/java/me/imsonmia/epqapi/controller/ChatMessageController.java deleted file mode 100644 index 7bfcba6..0000000 --- a/src/main/java/me/imsonmia/epqapi/controller/ChatMessageController.java +++ /dev/null @@ -1,21 +0,0 @@ -package me.imsonmia.epqapi.controller; - -import org.springframework.messaging.handler.annotation.MessageMapping; -import org.springframework.messaging.handler.annotation.SendTo; -import org.springframework.stereotype.Controller; - -import me.imsonmia.epqapi.model.Message; - -@Controller -// @RequestMapping("/api/v1") -public class ChatMessageController { - @MessageMapping("/chat") - @SendTo("/sub/chat") - public Message messageHandler(Message message) throws Exception { - return message; - } - // @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/controller/MessageController.java b/src/main/java/me/imsonmia/epqapi/controller/MessageController.java new file mode 100644 index 0000000..781b6ff --- /dev/null +++ b/src/main/java/me/imsonmia/epqapi/controller/MessageController.java @@ -0,0 +1,35 @@ +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 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 { +} -- cgit