From bb5847f4c7c11a1003389bc71c2d0307a82b8a0b Mon Sep 17 00:00:00 2001 From: Kievina <56592501+Kievina@users.noreply.github.com> Date: Thu, 12 Dec 2019 19:00:03 -0500 Subject: [PATCH] update message class to include message verification --- .../chatapp/message/MessageController.java | 29 +++++++++++++++++-- .../chatapp/message/MessageRepository.java | 2 +- .../chatapp/message/MessageService.java | 11 +++++-- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/groupfour/chatapp/chatapp/message/MessageController.java b/src/main/java/com/groupfour/chatapp/chatapp/message/MessageController.java index dc7406d3e..1f29ee9a7 100644 --- a/src/main/java/com/groupfour/chatapp/chatapp/message/MessageController.java +++ b/src/main/java/com/groupfour/chatapp/chatapp/message/MessageController.java @@ -1,5 +1,6 @@ package com.groupfour.chatapp.chatapp.message; +import com.groupfour.chatapp.chatapp.exceptions.ResourceNotFoundException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -19,18 +20,40 @@ public MessageController(MessageService messageService) { public ResponseEntity createMessage(@RequestBody Message message) { return new ResponseEntity<>(messageService.create(message), HttpStatus.CREATED); } + @GetMapping("/messages/{messageId}") public ResponseEntity getMessage(@PathVariable Long messageId) { - return new ResponseEntity<>(messageService.getMessageById(messageId), HttpStatus.OK); + try { + verifyMessage(messageId); + return new ResponseEntity<>(messageService.getMessageById(messageId), HttpStatus.OK); + } catch (ResourceNotFoundException ex) { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } } @PutMapping("/messages/{messageId}") public ResponseEntity editMessage(@PathVariable Long messageId, @RequestBody Message message) { - return new ResponseEntity<>(messageService.updateMessageBody(messageId, message), HttpStatus.OK); + try { + verifyMessage(messageId); + return new ResponseEntity<>(messageService.updateMessageBody(messageId, message), HttpStatus.OK); + } catch (ResourceNotFoundException ex) { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } } @DeleteMapping("messages/{messageId") public ResponseEntity deleteMessage(@PathVariable Long messageId) { - return new ResponseEntity<>(messageService.deleteMessageById(messageId), HttpStatus.OK); + try { + verifyMessage(messageId); + return new ResponseEntity<>(messageService.deleteMessageById(messageId), HttpStatus.OK); + } catch (ResourceNotFoundException ex) { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } + + private void verifyMessage(Long messageId) { + if (!messageService.messageExists(messageId)) { + throw new ResourceNotFoundException("Message " + messageId + " not found."); + } } } diff --git a/src/main/java/com/groupfour/chatapp/chatapp/message/MessageRepository.java b/src/main/java/com/groupfour/chatapp/chatapp/message/MessageRepository.java index 81b56658b..f2049b62c 100644 --- a/src/main/java/com/groupfour/chatapp/chatapp/message/MessageRepository.java +++ b/src/main/java/com/groupfour/chatapp/chatapp/message/MessageRepository.java @@ -6,7 +6,7 @@ @Repository public interface MessageRepository extends CrudRepository { -Message findByUser(); +//Message findByUser(); } diff --git a/src/main/java/com/groupfour/chatapp/chatapp/message/MessageService.java b/src/main/java/com/groupfour/chatapp/chatapp/message/MessageService.java index 81c41da3c..9f76e5098 100644 --- a/src/main/java/com/groupfour/chatapp/chatapp/message/MessageService.java +++ b/src/main/java/com/groupfour/chatapp/chatapp/message/MessageService.java @@ -1,9 +1,6 @@ package com.groupfour.chatapp.chatapp.message; -import com.groupfour.chatapp.chatapp.message.MessageRepository; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @Service @@ -36,4 +33,12 @@ public Boolean deleteMessageById(Long messageId) { messageRepository.deleteById(messageId); return true; } + + public Boolean messageExists(Long messageId) { + if(messageRepository.existsById(messageId)) + return true; + else + return false; + } + }