Changed time formatter to Instant in Controllers
This commit is contained in:
parent
5978eaebaa
commit
a79d85f67f
@ -1,9 +1,7 @@
|
|||||||
package org.ros.chatto.controller;
|
package org.ros.chatto.controller;
|
||||||
|
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
import java.time.OffsetDateTime;
|
import java.time.Instant;
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.time.format.DateTimeFormatterBuilder;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
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.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@ -53,24 +50,9 @@ public class AdminRESTController {
|
|||||||
|
|
||||||
@GetMapping(value = "/get/messages/{userName}/{lastMessageTime}")
|
@GetMapping(value = "/get/messages/{userName}/{lastMessageTime}")
|
||||||
public List<ChatMessageDTO> sendNewMessages(@PathVariable String userName,
|
public List<ChatMessageDTO> sendNewMessages(@PathVariable String userName,
|
||||||
@PathVariable String lastMessageTime, Principal principal) {
|
@PathVariable Instant lastMessageTime, Principal principal) {
|
||||||
System.out.println("Last message time = " + lastMessageTime);
|
List<ChatMessageDTO> chatMessageDTOs = chatService.getNewMessages(
|
||||||
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
|
principal.getName(), userName, Date.from(lastMessageTime));
|
||||||
// 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<ChatMessageDTO> chatMessageDTOs = chatService
|
|
||||||
.getNewMessages(principal.getName(), userName, date);
|
|
||||||
return chatMessageDTOs;
|
return chatMessageDTOs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,14 +61,3 @@ public class AdminRESTController {
|
|||||||
return userService.findAllOtherUsers(principal.getName());
|
return userService.findAllOtherUsers(principal.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// public ResponseEntity<List<ChatMessage>> getMessages(@PathVariable String
|
|
||||||
// userName, Principal principal) {
|
|
||||||
//// List<ChatMessage> chatMessages =
|
|
||||||
// chatMessageRepository.getAllMessages(principal.getName(), userName);
|
|
||||||
//
|
|
||||||
//// return posts.stream()
|
|
||||||
//// .map(post -> convertToDto(post))
|
|
||||||
//// .collect(Collectors.toList());
|
|
||||||
// return new ResponseEntity<List<ChatMessage>>(chatMessages, HttpStatus.OK);
|
|
||||||
// }
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package org.ros.chatto.controller;
|
package org.ros.chatto.controller;
|
||||||
|
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
|
import java.time.Instant;
|
||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.format.DateTimeFormatterBuilder;
|
import java.time.format.DateTimeFormatterBuilder;
|
||||||
@ -34,64 +35,67 @@ import lombok.RequiredArgsConstructor;
|
|||||||
@RequestMapping("/api/chat")
|
@RequestMapping("/api/chat")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class ChatMessageController {
|
public class ChatMessageController {
|
||||||
|
|
||||||
private final ChatService chatService;
|
private final ChatService chatService;
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
|
|
||||||
@PostMapping(value = "/post/message", consumes = { "application/json" })
|
@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) {
|
final BindingResult bindingResult, final Principal principal) {
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
return new ResponseEntity<ErrorResponse>(handleValidationErrors(bindingResult), HttpStatus.BAD_REQUEST);
|
return new ResponseEntity<ErrorResponse>(
|
||||||
|
handleValidationErrors(bindingResult),
|
||||||
|
HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
final MessageCipherDTO messageCipher = chatMessageDTO.getMessageCipher();
|
final MessageCipherDTO messageCipher = chatMessageDTO
|
||||||
|
.getMessageCipher();
|
||||||
final String fromUser = principal.getName();
|
final String fromUser = principal.getName();
|
||||||
final String toUser = chatMessageDTO.getToUser();
|
final String toUser = chatMessageDTO.getToUser();
|
||||||
System.out.println("Message cipher = " + messageCipher);
|
System.out.println("Message cipher = " + messageCipher);
|
||||||
final ChatMessageDTO chatMessageDTOSaved = chatService.createMessage(fromUser, toUser, messageCipher);
|
final ChatMessageDTO chatMessageDTOSaved = chatService
|
||||||
return new ResponseEntity<ChatMessageDTO>(chatMessageDTOSaved, HttpStatus.CREATED);
|
.createMessage(fromUser, toUser, messageCipher);
|
||||||
|
return new ResponseEntity<ChatMessageDTO>(chatMessageDTOSaved,
|
||||||
|
HttpStatus.CREATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ErrorResponse handleValidationErrors(final BindingResult bindingResult) {
|
private ErrorResponse handleValidationErrors(
|
||||||
|
final BindingResult bindingResult) {
|
||||||
|
|
||||||
final List<ErrorModel> errorMessages = bindingResult.getFieldErrors().stream()
|
final List<ErrorModel> errorMessages = bindingResult.getFieldErrors()
|
||||||
.map(err -> new ErrorModel(err.getField(), err.getRejectedValue(), err.getDefaultMessage())).distinct()
|
.stream()
|
||||||
.collect(Collectors.toList());
|
.map(err -> new ErrorModel(err.getField(),
|
||||||
|
err.getRejectedValue(), err.getDefaultMessage()))
|
||||||
|
.distinct().collect(Collectors.toList());
|
||||||
return ErrorResponse.builder().errorMessage(errorMessages).build();
|
return ErrorResponse.builder().errorMessage(errorMessages).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/get/messages/{userName}")
|
@GetMapping(value = "/get/messages/{userName}")
|
||||||
public List<ChatMessageDTO> getAllMessages(@PathVariable final String userName, final Principal principal) {
|
public List<ChatMessageDTO> getAllMessages(
|
||||||
final List<ChatMessageDTO> chatMessageDTOs = chatService.getAllMessages(principal.getName(), userName);
|
@PathVariable final String userName, final Principal principal) {
|
||||||
|
final List<ChatMessageDTO> chatMessageDTOs = chatService
|
||||||
|
.getAllMessages(principal.getName(), userName);
|
||||||
return chatMessageDTOs;
|
return chatMessageDTOs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/get/messages/{userName}", params = { "page", "size" })
|
@GetMapping(value = "/get/messages/{userName}", params = { "page", "size" })
|
||||||
public List<ChatMessageDTO> findPaginated(@RequestParam("page") final int page,
|
public List<ChatMessageDTO> findPaginated(
|
||||||
@RequestParam("size") final int size, @PathVariable final String userName, final Principal principal) {
|
@RequestParam("page") final int page,
|
||||||
final List<ChatMessageDTO> chatMessageDTOs = chatService.getMessagePage(principal.getName(), userName, page,
|
@RequestParam("size") final int size,
|
||||||
size);
|
@PathVariable final String userName, final Principal principal) {
|
||||||
|
final List<ChatMessageDTO> chatMessageDTOs = chatService
|
||||||
|
.getMessagePage(principal.getName(), userName, page, size);
|
||||||
return chatMessageDTOs;
|
return chatMessageDTOs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/get/messages/{userName}/{lastMessageTime}")
|
@GetMapping(value = "/get/messages/{userName}/{lastMessageTime}")
|
||||||
public List<ChatMessageDTO> sendNewMessages(@PathVariable final String userName,
|
public List<ChatMessageDTO> sendNewMessages(
|
||||||
@PathVariable final String lastMessageTime, final Principal principal) {
|
@PathVariable final String userName,
|
||||||
System.out.println("Last message time = " + lastMessageTime);
|
@PathVariable final Instant lastMessageTime,
|
||||||
final DateTimeFormatter formatter = new DateTimeFormatterBuilder()
|
final Principal principal) {
|
||||||
// date/time
|
final List<ChatMessageDTO> chatMessageDTOs = chatService
|
||||||
.append(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
|
.getNewMessages(principal.getName(), userName,
|
||||||
// offset (hh:mm - "+00:00" when it's zero)
|
Date.from(lastMessageTime));
|
||||||
.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<ChatMessageDTO> chatMessageDTOs = chatService.getNewMessages(principal.getName(), userName, date);
|
|
||||||
return chatMessageDTOs;
|
return chatMessageDTOs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +105,8 @@ public class ChatMessageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/get/active-users")
|
@GetMapping("/get/active-users")
|
||||||
public List<ActiveUserDTO> getAllOtherActiveUsers(final Principal principal) {
|
public List<ActiveUserDTO> getAllOtherActiveUsers(
|
||||||
|
final Principal principal) {
|
||||||
return userService.getOtherActiveUsers(principal.getName());
|
return userService.getOtherActiveUsers(principal.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,14 +115,3 @@ public class ChatMessageController {
|
|||||||
return new ResponseEntity<String>(HttpStatus.OK);
|
return new ResponseEntity<String>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// public ResponseEntity<List<ChatMessage>> getMessages(@PathVariable String
|
|
||||||
// userName, Principal principal) {
|
|
||||||
//// List<ChatMessage> chatMessages =
|
|
||||||
// chatMessageRepository.getAllMessages(principal.getName(), userName);
|
|
||||||
//
|
|
||||||
//// return posts.stream()
|
|
||||||
//// .map(post -> convertToDto(post))
|
|
||||||
//// .collect(Collectors.toList());
|
|
||||||
// return new ResponseEntity<List<ChatMessage>>(chatMessages, HttpStatus.OK);
|
|
||||||
// }
|
|
||||||
|
Loading…
Reference in New Issue
Block a user