Simplified history
This commit is contained in:
		| @@ -1,7 +1,6 @@ | ||||
| package com.r11.tools.controller; | ||||
|  | ||||
| import com.r11.tools.mappers.RequestHistoryMapper; | ||||
| import com.r11.tools.model.HistoryRequestModel; | ||||
| import com.r11.tools.model.RequestHistory; | ||||
| import com.r11.tools.model.RequestHistoryDTO; | ||||
| import com.r11.tools.service.RequestHistoryService; | ||||
| @@ -9,9 +8,7 @@ import lombok.AllArgsConstructor; | ||||
| import org.springframework.http.ResponseEntity; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
|  | ||||
| import java.time.LocalDateTime; | ||||
| import java.util.List; | ||||
| import java.util.UUID; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| /** | ||||
| @@ -28,37 +25,14 @@ public class RequestHistoryController { | ||||
|     private final RequestHistoryMapper mapper; | ||||
|  | ||||
|     /** | ||||
|      * Returns the list of Events in given time bracket. | ||||
|      * The list of objects is received via {@link RequestHistoryDTO}, which contains time brackets, | ||||
|      * as well as the key - uuid. | ||||
|      * @param historyRequestModel EventRequestDto object that contains data needed to query the database | ||||
|      * @return list of {@link RequestHistory} | ||||
|      */ | ||||
|     @PostMapping | ||||
|     public ResponseEntity<List<RequestHistoryDTO>> filterHistory(@RequestBody HistoryRequestModel historyRequestModel){ | ||||
|         return ResponseEntity.ok( | ||||
|                 service.getHistoryRecordsBetweenDatesAndByUUID(historyRequestModel) | ||||
|                         .stream() | ||||
|                         .map(mapper::requestHistoryToRequestHistoryDTO) | ||||
|                         .collect(Collectors.toList()) | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Returns the list of Events of last 24h from given date. | ||||
|      * Returns the list of Events. | ||||
|      * @param uuid unique id of message list | ||||
|      * @return list of {@link RequestHistory} | ||||
|      */ | ||||
|     @GetMapping(path = "/{uuid}") | ||||
|     public ResponseEntity<List<RequestHistoryDTO>> getLastDay(@PathVariable UUID uuid){ | ||||
|         LocalDateTime requestTime = LocalDateTime.now(); | ||||
|         LocalDateTime dayBeforeRequest = requestTime.minusDays(1L); | ||||
|         List<RequestHistoryDTO> requestHistory = service.getHistoryRecordsBetweenDatesAndByUUID( | ||||
|                 HistoryRequestModel.builder() | ||||
|                         .localDateTimeFrom(dayBeforeRequest) | ||||
|                         .localDateTimeTo(requestTime) | ||||
|                         .clientUUID(uuid) | ||||
|                         .build() | ||||
|     public ResponseEntity<List<RequestHistoryDTO>> getLastDay(@PathVariable String uuid){ | ||||
|         List<RequestHistoryDTO> requestHistory = service.getHistoryRecordsByUUID( | ||||
|                 uuid | ||||
|         ).stream() | ||||
|                 .map(mapper::requestHistoryToRequestHistoryDTO) | ||||
|                 .collect(Collectors.toList()); | ||||
|   | ||||
| @@ -1,29 +0,0 @@ | ||||
| package com.r11.tools.model; | ||||
|  | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
| import org.springframework.format.annotation.DateTimeFormat; | ||||
|  | ||||
| import java.time.LocalDateTime; | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Represents all data needed to get HistoryRecord from database | ||||
|  * @author Mikołaj Widła | ||||
|  */ | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @NoArgsConstructor | ||||
| @AllArgsConstructor | ||||
| public class HistoryRequestModel { | ||||
|  | ||||
|     private UUID clientUUID; | ||||
|     @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) | ||||
|     private LocalDateTime localDateTimeFrom; | ||||
|     @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) | ||||
|     private LocalDateTime localDateTimeTo; | ||||
|  | ||||
| } | ||||
| @@ -1,12 +1,12 @@ | ||||
| package com.r11.tools.service; | ||||
|  | ||||
| import com.r11.tools.controller.RequestHistoryController; | ||||
| import com.r11.tools.model.HistoryRequestModel; | ||||
| import com.r11.tools.model.RequestHistory; | ||||
| import com.r11.tools.model.RequestHistoryDTO; | ||||
| import java.util.List; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
|  * Spring service interface for {@link RequestHistoryController} | ||||
|  * @author Rafał Żukowicz | ||||
| @@ -15,9 +15,9 @@ import org.springframework.stereotype.Service; | ||||
| public interface RequestHistoryService { | ||||
|     /** | ||||
|      * Searches for {@link RequestHistory} objects between date brackets | ||||
|      * @param historyRequestModel object containing required data for request | ||||
|      * @param uuid user uuid | ||||
|      * @return list of {@link RequestHistory} | ||||
|      */ | ||||
|     List<RequestHistory> getHistoryRecordsBetweenDatesAndByUUID(HistoryRequestModel historyRequestModel); | ||||
|     List<RequestHistory> getHistoryRecordsByUUID(String uuid); | ||||
|     void saveRequest(RequestHistoryDTO requestDTO); | ||||
| } | ||||
|   | ||||
| @@ -2,7 +2,6 @@ package com.r11.tools.service; | ||||
|  | ||||
| import com.r11.tools.controller.RequestHistoryController; | ||||
| import com.r11.tools.mappers.RequestHistoryMapper; | ||||
| import com.r11.tools.model.HistoryRequestModel; | ||||
| import com.r11.tools.model.RequestHistory; | ||||
| import com.r11.tools.model.RequestHistoryDTO; | ||||
| import com.r11.tools.repository.RequestHistoryRepository; | ||||
| @@ -11,7 +10,6 @@ import org.springframework.stereotype.Service; | ||||
|  | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| /** | ||||
|  * Spring Service for {@link RequestHistoryController}. Contains logic required for quering | ||||
| @@ -26,28 +24,11 @@ public class RequestHistoryServiceImpl implements RequestHistoryService { | ||||
|     private final RequestHistoryRepository repository; | ||||
|     private final RequestHistoryMapper requestMapper; | ||||
|  | ||||
|     /** | ||||
|      * in order to create query via{@link com.r11.tools.repository.RequestHistoryRepository} | ||||
|      * @param historyRequestModel object containing required data for request | ||||
|      * @return list of {@link RequestHistory} | ||||
|      */ | ||||
|     @Override | ||||
|     public List<RequestHistory> getHistoryRecordsBetweenDatesAndByUUID(HistoryRequestModel historyRequestModel) { | ||||
|         List<RequestHistory> history = repository.findAllByClientUUID( | ||||
|                 historyRequestModel.getClientUUID().toString() | ||||
|                 ); | ||||
|     public List<RequestHistory> getHistoryRecordsByUUID(String uuid) { | ||||
|         List<RequestHistory> history = repository.findAllByClientUUID(uuid); | ||||
|         Collections.sort(history); | ||||
|  | ||||
|         return history.stream() | ||||
|                 .filter( historyRecord -> historyRecord | ||||
|                         .getDateTimeStamp() | ||||
|                         .isAfter(historyRequestModel.getLocalDateTimeFrom()) | ||||
|                 ).filter( | ||||
|                         historyRecord-> historyRecord | ||||
|                                 .getDateTimeStamp() | ||||
|                                 .isBefore(historyRequestModel.getLocalDateTimeTo()) | ||||
|                 ) | ||||
|                 .collect(Collectors.toList()); | ||||
|         return history; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|   | ||||
		Reference in New Issue
	
	Block a user