Skip to content

Commit

Permalink
Add chat controller
Browse files Browse the repository at this point in the history
  • Loading branch information
juncevich committed Dec 20, 2023
1 parent fa5791a commit d03c3d5
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
@@ -0,0 +1,47 @@
package com.relay.chatservice.chat;

import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

@Controller
@RequiredArgsConstructor
public class ChatController {
private final ChatMessageService chatMessageService;
private final SimpMessagingTemplate messagingTemplate;

@MessageMapping("/chat")
public void processMessage(
@Payload ChatMessage chatMessage
) {
ChatMessage savedMsg = chatMessageService.save(chatMessage);
// john/queue/message

messagingTemplate.convertAndSendToUser(
chatMessage.getRecipientId(),
"/queue/messages",
ChatNotification.builder()
.id(savedMsg.getId())
.senderId(savedMsg.getSenderId())
.recipientId(savedMsg.getRecipientId())
.content(savedMsg.getContent())
.build()

);
}

@GetMapping("/messages/{senderId}/{recipientId}")
public ResponseEntity<List<ChatMessage>> findChatMessages(
@PathVariable("senderId") String senderId,
@PathVariable("recipientId") String recipientId
) {
return ResponseEntity.ok(chatMessageService.findChatMessages(senderId, recipientId));
}
}
@@ -0,0 +1,17 @@
package com.relay.chatservice.chat;

import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Document
public class ChatNotification {
private String id;
private String senderId;
private String recipientId;
private String content;
}

0 comments on commit d03c3d5

Please sign in to comment.