diff --git a/chatto/src/main/java/org/ros/chatto/controller/AdminRESTController.java b/chatto/src/main/java/org/ros/chatto/controller/AdminRESTController.java index fc1b62f..e70fafd 100644 --- a/chatto/src/main/java/org/ros/chatto/controller/AdminRESTController.java +++ b/chatto/src/main/java/org/ros/chatto/controller/AdminRESTController.java @@ -1,9 +1,7 @@ package org.ros.chatto.controller; import java.security.Principal; -import java.time.OffsetDateTime; -import java.time.format.DateTimeFormatter; -import java.time.format.DateTimeFormatterBuilder; +import java.time.Instant; import java.util.Date; import java.util.List; @@ -21,7 +19,6 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @RestController @@ -53,24 +50,9 @@ public class AdminRESTController { @GetMapping(value = "/get/messages/{userName}/{lastMessageTime}") public List sendNewMessages(@PathVariable String userName, - @PathVariable String lastMessageTime, Principal principal) { - System.out.println("Last message time = " + lastMessageTime); - DateTimeFormatter formatter = new DateTimeFormatterBuilder() - // date/time - .append(DateTimeFormatter.ISO_LOCAL_DATE_TIME) - // offset (hh:mm - "+00:00" when it's zero) - .optionalStart().appendOffset("+HH:MM", "+00:00").optionalEnd() - // offset (hhmm - "+0000" when it's zero) - .optionalStart().appendOffset("+HHMM", "+0000").optionalEnd() - // offset (hh - "Z" when it's zero) - .optionalStart().appendOffset("+HH", "Z").optionalEnd() - // create formatter - .toFormatter(); - Date date = Date.from( - OffsetDateTime.parse(lastMessageTime, formatter).toInstant()); - - List chatMessageDTOs = chatService - .getNewMessages(principal.getName(), userName, date); + @PathVariable Instant lastMessageTime, Principal principal) { + List chatMessageDTOs = chatService.getNewMessages( + principal.getName(), userName, Date.from(lastMessageTime)); return chatMessageDTOs; } @@ -79,14 +61,3 @@ public class AdminRESTController { return userService.findAllOtherUsers(principal.getName()); } } - -// public ResponseEntity> getMessages(@PathVariable String -// userName, Principal principal) { -//// List chatMessages = -// chatMessageRepository.getAllMessages(principal.getName(), userName); -// -//// return posts.stream() -//// .map(post -> convertToDto(post)) -//// .collect(Collectors.toList()); -// return new ResponseEntity>(chatMessages, HttpStatus.OK); -// } diff --git a/chatto/src/main/java/org/ros/chatto/controller/ChatMessageController.java b/chatto/src/main/java/org/ros/chatto/controller/ChatMessageController.java index 91ecced..00ab9f8 100644 --- a/chatto/src/main/java/org/ros/chatto/controller/ChatMessageController.java +++ b/chatto/src/main/java/org/ros/chatto/controller/ChatMessageController.java @@ -1,6 +1,7 @@ package org.ros.chatto.controller; import java.security.Principal; +import java.time.Instant; import java.time.OffsetDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; @@ -34,64 +35,67 @@ import lombok.RequiredArgsConstructor; @RequestMapping("/api/chat") @RequiredArgsConstructor public class ChatMessageController { - + private final ChatService chatService; private final UserService userService; @PostMapping(value = "/post/message", consumes = { "application/json" }) - public ResponseEntity newMessage(@RequestBody @Valid final ChatMessageDTO chatMessageDTO, + public ResponseEntity newMessage( + @RequestBody @Valid final ChatMessageDTO chatMessageDTO, final BindingResult bindingResult, final Principal principal) { if (bindingResult.hasErrors()) { - return new ResponseEntity(handleValidationErrors(bindingResult), HttpStatus.BAD_REQUEST); + return new ResponseEntity( + handleValidationErrors(bindingResult), + HttpStatus.BAD_REQUEST); } - final MessageCipherDTO messageCipher = chatMessageDTO.getMessageCipher(); + final MessageCipherDTO messageCipher = chatMessageDTO + .getMessageCipher(); final String fromUser = principal.getName(); final String toUser = chatMessageDTO.getToUser(); System.out.println("Message cipher = " + messageCipher); - final ChatMessageDTO chatMessageDTOSaved = chatService.createMessage(fromUser, toUser, messageCipher); - return new ResponseEntity(chatMessageDTOSaved, HttpStatus.CREATED); + final ChatMessageDTO chatMessageDTOSaved = chatService + .createMessage(fromUser, toUser, messageCipher); + return new ResponseEntity(chatMessageDTOSaved, + HttpStatus.CREATED); } - private ErrorResponse handleValidationErrors(final BindingResult bindingResult) { + private ErrorResponse handleValidationErrors( + final BindingResult bindingResult) { - final List errorMessages = bindingResult.getFieldErrors().stream() - .map(err -> new ErrorModel(err.getField(), err.getRejectedValue(), err.getDefaultMessage())).distinct() - .collect(Collectors.toList()); + final List errorMessages = bindingResult.getFieldErrors() + .stream() + .map(err -> new ErrorModel(err.getField(), + err.getRejectedValue(), err.getDefaultMessage())) + .distinct().collect(Collectors.toList()); return ErrorResponse.builder().errorMessage(errorMessages).build(); } @GetMapping(value = "/get/messages/{userName}") - public List getAllMessages(@PathVariable final String userName, final Principal principal) { - final List chatMessageDTOs = chatService.getAllMessages(principal.getName(), userName); + public List getAllMessages( + @PathVariable final String userName, final Principal principal) { + final List chatMessageDTOs = chatService + .getAllMessages(principal.getName(), userName); return chatMessageDTOs; } @GetMapping(value = "/get/messages/{userName}", params = { "page", "size" }) - public List findPaginated(@RequestParam("page") final int page, - @RequestParam("size") final int size, @PathVariable final String userName, final Principal principal) { - final List chatMessageDTOs = chatService.getMessagePage(principal.getName(), userName, page, - size); + public List findPaginated( + @RequestParam("page") final int page, + @RequestParam("size") final int size, + @PathVariable final String userName, final Principal principal) { + final List chatMessageDTOs = chatService + .getMessagePage(principal.getName(), userName, page, size); return chatMessageDTOs; } @GetMapping(value = "/get/messages/{userName}/{lastMessageTime}") - public List sendNewMessages(@PathVariable final String userName, - @PathVariable final String lastMessageTime, final Principal principal) { - System.out.println("Last message time = " + lastMessageTime); - final DateTimeFormatter formatter = new DateTimeFormatterBuilder() - // date/time - .append(DateTimeFormatter.ISO_LOCAL_DATE_TIME) - // offset (hh:mm - "+00:00" when it's zero) - .optionalStart().appendOffset("+HH:MM", "+00:00").optionalEnd() - // offset (hhmm - "+0000" when it's zero) - .optionalStart().appendOffset("+HHMM", "+0000").optionalEnd() - // offset (hh - "Z" when it's zero) - .optionalStart().appendOffset("+HH", "Z").optionalEnd() - // create formatter - .toFormatter(); - final Date date = Date.from(OffsetDateTime.parse(lastMessageTime, formatter).toInstant()); - - final List chatMessageDTOs = chatService.getNewMessages(principal.getName(), userName, date); + public List sendNewMessages( + @PathVariable final String userName, + @PathVariable final Instant lastMessageTime, + final Principal principal) { + final List chatMessageDTOs = chatService + .getNewMessages(principal.getName(), userName, + Date.from(lastMessageTime)); return chatMessageDTOs; } @@ -101,7 +105,8 @@ public class ChatMessageController { } @GetMapping("/get/active-users") - public List getAllOtherActiveUsers(final Principal principal) { + public List getAllOtherActiveUsers( + final Principal principal) { return userService.getOtherActiveUsers(principal.getName()); } @@ -110,14 +115,3 @@ public class ChatMessageController { return new ResponseEntity(HttpStatus.OK); } } - -// public ResponseEntity> getMessages(@PathVariable String -// userName, Principal principal) { -//// List chatMessages = -// chatMessageRepository.getAllMessages(principal.getName(), userName); -// -//// return posts.stream() -//// .map(post -> convertToDto(post)) -//// .collect(Collectors.toList()); -// return new ResponseEntity>(chatMessages, HttpStatus.OK); -// }