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