diff --git a/chatto/src/main/java/org/ros/chatto/dto/ActiveUserDTO.java b/chatto/src/main/java/org/ros/chatto/dto/ActiveUserDTO.java index 781837d..d15ad8e 100644 --- a/chatto/src/main/java/org/ros/chatto/dto/ActiveUserDTO.java +++ b/chatto/src/main/java/org/ros/chatto/dto/ActiveUserDTO.java @@ -1,10 +1,12 @@ package org.ros.chatto.dto; +import java.time.Instant; + import lombok.Data; @Data public class ActiveUserDTO { private String userName; private Boolean online; - private String lastActive; + private Instant lastActive; } diff --git a/chatto/src/main/java/org/ros/chatto/service/MyConversionService.java b/chatto/src/main/java/org/ros/chatto/service/MyConversionService.java index 4a5f889..944ef3a 100644 --- a/chatto/src/main/java/org/ros/chatto/service/MyConversionService.java +++ b/chatto/src/main/java/org/ros/chatto/service/MyConversionService.java @@ -13,7 +13,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.stereotype.Service; - //private PostDto convertToDto(Post post) { // PostDto postDto = modelMapper.map(post, PostDto.class); // postDto.setSubmissionDate(post.getSubmissionDate(), @@ -38,52 +37,72 @@ import org.springframework.stereotype.Service; public class MyConversionService { @Autowired ModelMapper modelMapper; - - public ChatMessageDTO convertToChatMessageDTO(final ChatMessage chatMessage) { - final ChatMessageDTO chatMessageDTO = modelMapper.map(chatMessage, ChatMessageDTO.class); + + public ChatMessageDTO convertToChatMessageDTO( + final ChatMessage chatMessage) { + final ChatMessageDTO chatMessageDTO = modelMapper.map(chatMessage, + ChatMessageDTO.class); return chatMessageDTO; } - public ChatMessage convertToChatMessage(final ChatMessageDTO chatMessageDTO) { - final ChatMessage chatMessage = modelMapper.map(chatMessageDTO, ChatMessage.class); + public ChatMessage convertToChatMessage( + final ChatMessageDTO chatMessageDTO) { + final ChatMessage chatMessage = modelMapper.map(chatMessageDTO, + ChatMessage.class); return chatMessage; } - public MessageCipher convertToMessageCipher(final MessageCipherDTO messageCipherDTO) { - final MessageCipher messageCipher = modelMapper.map(messageCipherDTO, MessageCipher.class); + public MessageCipher convertToMessageCipher( + final MessageCipherDTO messageCipherDTO) { + final MessageCipher messageCipher = modelMapper.map(messageCipherDTO, + MessageCipher.class); return messageCipher; } - public List convertToChatMessageDTOs(final List chatMessages) { - return chatMessages.stream().map(chatMessage -> convertToChatMessageDTO(chatMessage)) + public List convertToChatMessageDTOs( + final List chatMessages) { + return chatMessages.stream() + .map(chatMessage -> convertToChatMessageDTO(chatMessage)) .collect(Collectors.toList()); } - public ReencryptionDTO convertToReencryptionDTO(final ChatMessage chatMessage) { - final ReencryptionDTO reencryptionDTO = modelMapper.map(chatMessage, ReencryptionDTO.class); + public ReencryptionDTO convertToReencryptionDTO( + final ChatMessage chatMessage) { + final ReencryptionDTO reencryptionDTO = modelMapper.map(chatMessage, + ReencryptionDTO.class); return reencryptionDTO; } - public ChatMessage convertToChatMessage(final ReencryptionDTO reencryptionDTO) { - final ChatMessage chatMessage = modelMapper.map(reencryptionDTO, ChatMessage.class); + public ChatMessage convertToChatMessage( + final ReencryptionDTO reencryptionDTO) { + final ChatMessage chatMessage = modelMapper.map(reencryptionDTO, + ChatMessage.class); return chatMessage; } - public List convertToReencryptionDTOs(final List chatMessages) { - return chatMessages.stream().map(chatMessage -> convertToReencryptionDTO(chatMessage)) + public List convertToReencryptionDTOs( + final List chatMessages) { + return chatMessages.stream() + .map(chatMessage -> convertToReencryptionDTO(chatMessage)) .collect(Collectors.toList()); } - public Iterable convertoToChatMessages(final List chatMessageDTOs) { + public Iterable convertoToChatMessages( + final List chatMessageDTOs) { - return chatMessageDTOs.stream().map(chatMessageDTO -> convertToChatMessage(chatMessageDTO)) + return chatMessageDTOs.stream() + .map(chatMessageDTO -> convertToChatMessage(chatMessageDTO)) .collect(Collectors.toList()); } - public List convertToChatMessageDTOs(final Page chatMessages) - { + public List convertToChatMessageDTOs( + final Page chatMessages) { return chatMessages.stream() .map(chatMessage -> convertToChatMessageDTO(chatMessage)) .collect(Collectors.toList()); } + + public O convert(T obj, Class clazz) { + return modelMapper.map(obj, clazz); + } } diff --git a/chatto/src/main/java/org/ros/chatto/service/UserServiceImpl.java b/chatto/src/main/java/org/ros/chatto/service/UserServiceImpl.java index bba4ffa..71c6abe 100644 --- a/chatto/src/main/java/org/ros/chatto/service/UserServiceImpl.java +++ b/chatto/src/main/java/org/ros/chatto/service/UserServiceImpl.java @@ -87,7 +87,7 @@ public class UserServiceImpl implements UserService { activeUserDTO.setLastActive(null); if (us != null) { activeUserDTO.setOnline(us.isOnline()); - activeUserDTO.setLastActive(toLastActiveString(us.getTimeStamp())); + activeUserDTO.setLastActive(us.getTimeStamp()); } activeUserDTOs.add(activeUserDTO); diff --git a/chatto/src/main/javascript/ts/src/controller/UserController.ts b/chatto/src/main/javascript/ts/src/controller/UserController.ts index e6f7631..38d4535 100644 --- a/chatto/src/main/javascript/ts/src/controller/UserController.ts +++ b/chatto/src/main/javascript/ts/src/controller/UserController.ts @@ -31,11 +31,11 @@ export class UserController { const activeUsersMock: ActiveUserViewModel[] = []; let activeUserViewModelMock = new ActiveUserViewModel(); activeUserViewModelMock.userName = "some user"; - activeUserViewModelMock.lastActive = "3 hrs ago"; + // activeUserViewModelMock.lastActive = "3 hrs ago"; activeUserViewModelMock.online = true; activeUsersMock.push(activeUserViewModelMock); activeUserViewModelMock = new ActiveUserViewModel(); - activeUserViewModelMock.lastActive = "3 hrs ago"; + // activeUserViewModelMock.lastActive = "3 hrs ago"; activeUserViewModelMock.online = true; activeUserViewModelMock.userName = "some user 2"; activeUsersMock.push(activeUserViewModelMock); diff --git a/chatto/src/main/javascript/ts/src/model/UserModel.ts b/chatto/src/main/javascript/ts/src/model/UserModel.ts index 93373da..5bb1074 100644 --- a/chatto/src/main/javascript/ts/src/model/UserModel.ts +++ b/chatto/src/main/javascript/ts/src/model/UserModel.ts @@ -75,6 +75,10 @@ export class UserModel implements Subject { // sessionStorage.setItem('activeUsers', JSON.stringify(data)); // log.trace(sessionStorage.getItem('activeUsers')); log.info(`Subject: received ajax active users`); + data.map((d: any) => { + d.lastActive = new Date(d.lastActive) + return d; + }); this._activeUsersList = data; this.notify(); }) @@ -98,8 +102,9 @@ export class UserModel implements Subject { let data = await response.json(); // return data; return new Promise((resolve, reject) => { - if (data != null) + if (data != null) { resolve(data) + } else reject('Response data null') }) diff --git a/chatto/src/main/javascript/ts/src/viewmodel/ActiveUserViewModel.ts b/chatto/src/main/javascript/ts/src/viewmodel/ActiveUserViewModel.ts index bc9784a..3ffdde5 100644 --- a/chatto/src/main/javascript/ts/src/viewmodel/ActiveUserViewModel.ts +++ b/chatto/src/main/javascript/ts/src/viewmodel/ActiveUserViewModel.ts @@ -1,5 +1,5 @@ export class ActiveUserViewModel { userName: string | undefined; online: boolean | undefined; - lastActive: string| undefined; + lastActive: Date | undefined; } \ No newline at end of file