Simplified history

This commit is contained in:
2023-05-26 13:55:48 +02:00
parent d336f5d18e
commit 9b18a9f42d
7 changed files with 15 additions and 138 deletions

View File

@@ -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());

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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