Simplified history
This commit is contained in:
		| @@ -1,7 +1,6 @@ | |||||||
| package com.r11.tools.controller; | package com.r11.tools.controller; | ||||||
|  |  | ||||||
| import com.r11.tools.mappers.RequestHistoryMapper; | import com.r11.tools.mappers.RequestHistoryMapper; | ||||||
| import com.r11.tools.model.HistoryRequestModel; |  | ||||||
| import com.r11.tools.model.RequestHistory; | import com.r11.tools.model.RequestHistory; | ||||||
| import com.r11.tools.model.RequestHistoryDTO; | import com.r11.tools.model.RequestHistoryDTO; | ||||||
| import com.r11.tools.service.RequestHistoryService; | import com.r11.tools.service.RequestHistoryService; | ||||||
| @@ -9,9 +8,7 @@ import lombok.AllArgsConstructor; | |||||||
| import org.springframework.http.ResponseEntity; | import org.springframework.http.ResponseEntity; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
|  |  | ||||||
| import java.time.LocalDateTime; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.UUID; |  | ||||||
| import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -28,37 +25,14 @@ public class RequestHistoryController { | |||||||
|     private final RequestHistoryMapper mapper; |     private final RequestHistoryMapper mapper; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Returns the list of Events in given time bracket. |      * Returns the list of Events. | ||||||
|      * 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. |  | ||||||
|      * @param uuid unique id of message list |      * @param uuid unique id of message list | ||||||
|      * @return list of {@link RequestHistory} |      * @return list of {@link RequestHistory} | ||||||
|      */ |      */ | ||||||
|     @GetMapping(path = "/{uuid}") |     @GetMapping(path = "/{uuid}") | ||||||
|     public ResponseEntity<List<RequestHistoryDTO>> getLastDay(@PathVariable UUID uuid){ |     public ResponseEntity<List<RequestHistoryDTO>> getLastDay(@PathVariable String uuid){ | ||||||
|         LocalDateTime requestTime = LocalDateTime.now(); |         List<RequestHistoryDTO> requestHistory = service.getHistoryRecordsByUUID( | ||||||
|         LocalDateTime dayBeforeRequest = requestTime.minusDays(1L); |                 uuid | ||||||
|         List<RequestHistoryDTO> requestHistory = service.getHistoryRecordsBetweenDatesAndByUUID( |  | ||||||
|                 HistoryRequestModel.builder() |  | ||||||
|                         .localDateTimeFrom(dayBeforeRequest) |  | ||||||
|                         .localDateTimeTo(requestTime) |  | ||||||
|                         .clientUUID(uuid) |  | ||||||
|                         .build() |  | ||||||
|         ).stream() |         ).stream() | ||||||
|                 .map(mapper::requestHistoryToRequestHistoryDTO) |                 .map(mapper::requestHistoryToRequestHistoryDTO) | ||||||
|                 .collect(Collectors.toList()); |                 .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; | package com.r11.tools.service; | ||||||
|  |  | ||||||
| import com.r11.tools.controller.RequestHistoryController; | import com.r11.tools.controller.RequestHistoryController; | ||||||
| import com.r11.tools.model.HistoryRequestModel; |  | ||||||
| import com.r11.tools.model.RequestHistory; | import com.r11.tools.model.RequestHistory; | ||||||
| import com.r11.tools.model.RequestHistoryDTO; | import com.r11.tools.model.RequestHistoryDTO; | ||||||
| import java.util.List; |  | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Spring service interface for {@link RequestHistoryController} |  * Spring service interface for {@link RequestHistoryController} | ||||||
|  * @author Rafał Żukowicz |  * @author Rafał Żukowicz | ||||||
| @@ -15,9 +15,9 @@ import org.springframework.stereotype.Service; | |||||||
| public interface RequestHistoryService { | public interface RequestHistoryService { | ||||||
|     /** |     /** | ||||||
|      * Searches for {@link RequestHistory} objects between date brackets |      * 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} |      * @return list of {@link RequestHistory} | ||||||
|      */ |      */ | ||||||
|     List<RequestHistory> getHistoryRecordsBetweenDatesAndByUUID(HistoryRequestModel historyRequestModel); |     List<RequestHistory> getHistoryRecordsByUUID(String uuid); | ||||||
|     void saveRequest(RequestHistoryDTO requestDTO); |     void saveRequest(RequestHistoryDTO requestDTO); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -2,7 +2,6 @@ package com.r11.tools.service; | |||||||
|  |  | ||||||
| import com.r11.tools.controller.RequestHistoryController; | import com.r11.tools.controller.RequestHistoryController; | ||||||
| import com.r11.tools.mappers.RequestHistoryMapper; | import com.r11.tools.mappers.RequestHistoryMapper; | ||||||
| import com.r11.tools.model.HistoryRequestModel; |  | ||||||
| import com.r11.tools.model.RequestHistory; | import com.r11.tools.model.RequestHistory; | ||||||
| import com.r11.tools.model.RequestHistoryDTO; | import com.r11.tools.model.RequestHistoryDTO; | ||||||
| import com.r11.tools.repository.RequestHistoryRepository; | import com.r11.tools.repository.RequestHistoryRepository; | ||||||
| @@ -11,7 +10,6 @@ import org.springframework.stereotype.Service; | |||||||
|  |  | ||||||
| import java.util.Collections; | import java.util.Collections; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.stream.Collectors; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Spring Service for {@link RequestHistoryController}. Contains logic required for quering |  * 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 RequestHistoryRepository repository; | ||||||
|     private final RequestHistoryMapper requestMapper; |     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 |     @Override | ||||||
|     public List<RequestHistory> getHistoryRecordsBetweenDatesAndByUUID(HistoryRequestModel historyRequestModel) { |     public List<RequestHistory> getHistoryRecordsByUUID(String uuid) { | ||||||
|         List<RequestHistory> history = repository.findAllByClientUUID( |         List<RequestHistory> history = repository.findAllByClientUUID(uuid); | ||||||
|                 historyRequestModel.getClientUUID().toString() |  | ||||||
|                 ); |  | ||||||
|         Collections.sort(history); |         Collections.sort(history); | ||||||
|  |         return history; | ||||||
|         return history.stream() |  | ||||||
|                 .filter( historyRecord -> historyRecord |  | ||||||
|                         .getDateTimeStamp() |  | ||||||
|                         .isAfter(historyRequestModel.getLocalDateTimeFrom()) |  | ||||||
|                 ).filter( |  | ||||||
|                         historyRecord-> historyRecord |  | ||||||
|                                 .getDateTimeStamp() |  | ||||||
|                                 .isBefore(historyRequestModel.getLocalDateTimeTo()) |  | ||||||
|                 ) |  | ||||||
|                 .collect(Collectors.toList()); |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -1,38 +1,7 @@ | |||||||
| var historyJson = {}; | var historyJson = {}; | ||||||
| const maxIterations = 200; | const maxIterations = 200; | ||||||
|  |  | ||||||
| function filterHistory(){ | function getHistoryData(){ | ||||||
|     var dateFrom = new Date($('#historyFrom').val() + 'T' + $('#historyTimeFrom').val()); |  | ||||||
|      |  | ||||||
|     var dateTo = new Date($('#historyTo').val() + 'T' + $('#historyTimeTo').val()); |  | ||||||
|          |  | ||||||
|     loadHistory(dateFrom, dateTo); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| const startSearch = function(){ |  | ||||||
|     filterHistory(); |  | ||||||
| } |  | ||||||
| $('#btn-searchHistory').click(startSearch); |  | ||||||
|  |  | ||||||
| function loadHistory(dateFrom, dateTo){ |  | ||||||
|      |  | ||||||
|     var eventRequest = { |  | ||||||
|         clientUUID : json.clientUUID, |  | ||||||
|         localDateTimeFrom : dateFrom, |  | ||||||
|         localDateTimeTo : dateTo, |  | ||||||
|     }; |  | ||||||
|     $.ajax({ |  | ||||||
|         url: host + '/api/event', |  | ||||||
|         type: 'POST', |  | ||||||
|         data: JSON.stringify(eventRequest, null, 2), |  | ||||||
|         contentType: "application/json" |  | ||||||
|     }).done(function(data){ |  | ||||||
|         historyJson = data; |  | ||||||
|         displayHistory(); |  | ||||||
|     }); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function getLast24hHistoryData(){ |  | ||||||
|     $.getJSON(host + '/api/event/' + clientUUID, function(data){ |     $.getJSON(host + '/api/event/' + clientUUID, function(data){ | ||||||
|         historyJson = data; |         historyJson = data; | ||||||
|         displayHistory(); |         displayHistory(); | ||||||
|   | |||||||
| @@ -48,7 +48,7 @@ function showHistory(){ | |||||||
|  |  | ||||||
| function initializeHistory(){ | function initializeHistory(){ | ||||||
|     historyFilter.removeClass('active'); |     historyFilter.removeClass('active'); | ||||||
|     getLast24hHistoryData(); |     getHistoryData(); | ||||||
| } | } | ||||||
|  |  | ||||||
| function showHeaders(){ | function showHeaders(){ | ||||||
| @@ -176,7 +176,7 @@ function focusOutTip(element){ | |||||||
| } | } | ||||||
|  |  | ||||||
| function refreshHistoryRecords(){ | function refreshHistoryRecords(){ | ||||||
|     getLast24hHistoryData(); |     getHistoryData(); | ||||||
| } | } | ||||||
|  |  | ||||||
| function hidTip(element){ | function hidTip(element){ | ||||||
|   | |||||||
| @@ -127,25 +127,7 @@ | |||||||
|                             <!-- history --> |                             <!-- history --> | ||||||
|                             <div id="history" class="medium-vertical-margin tabcontent"> |                             <div id="history" class="medium-vertical-margin tabcontent"> | ||||||
|                                 <div class="block-display max-width"> |                                 <div class="block-display max-width"> | ||||||
|                                     <button id="btn-history-filter" class="clickable-text highlight switch"> |                                     <button type="button" class="refresh-button" onclick="refreshHistoryRecords();" >↻</button> | ||||||
|                                         <span class="toggleIndicator"></span> filter  |  | ||||||
|                                         <button type="button" class="refresh-button" onclick="refreshHistoryRecords();" >↻</button> |  | ||||||
|                                     </button> |  | ||||||
|                                     <div id ="history-filter" class="display-space-between max-width small-vertical-margin hiddable"> |  | ||||||
|                                         <div class="three-fourth-width display-space-evenly"> |  | ||||||
|                                             <div class="block-display half-width with-padding"> |  | ||||||
|                                                 <label for="historyFrom" class="block-label">From</label> |  | ||||||
|                                                 <input id="historyFrom" type="date" class="bordered-field max-width with-padding"> |  | ||||||
|                                                 <input id="historyTimeFrom" type="time" class="small-vertical-margin bordered-field max-width with-padding"> |  | ||||||
|                                             </div> |  | ||||||
|                                             <div class="block-display half-width with-padding"> |  | ||||||
|                                                 <label for="historyTo" class="block-label">To</label> |  | ||||||
|                                                 <input id="historyTo" type="date" class="bordered-field max-width with-padding"> |  | ||||||
|                                                 <input id="historyTimeTo" type="time" class="small-vertical-margin bordered-field max-width with-padding"> |  | ||||||
|                                             </div> |  | ||||||
|                                         </div> |  | ||||||
|                                         <button id="btn-searchHistory" class="quater-width action-button active small-margins">Search</button> |  | ||||||
|                                     </div> |  | ||||||
|                                  |                                  | ||||||
|                                     <div class="max-width centered-content large-vertical-margin overflowedTableContent"> |                                     <div class="max-width centered-content large-vertical-margin overflowedTableContent"> | ||||||
|                                         <table id="historyTable" class="table-default"> |                                         <table id="historyTable" class="table-default"> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user