75 lines
2.4 KiB
Java
75 lines
2.4 KiB
Java
package com.release11.klaus.controller;
|
|
|
|
import com.release11.klaus.model.Event;
|
|
import com.release11.klaus.model.EventRequestDto;
|
|
import com.release11.klaus.service.EtrackService;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.ui.Model;
|
|
import org.springframework.validation.BindingResult;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import javax.validation.Valid;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalTime;
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
|
|
/**
|
|
* Class responds to request asking about history of messages.
|
|
*/
|
|
@Slf4j
|
|
@Controller
|
|
@RequestMapping
|
|
@AllArgsConstructor
|
|
public class EventController {
|
|
|
|
private final EtrackService etrackService;
|
|
private final List<Event> eventList = new LinkedList<>();
|
|
|
|
@GetMapping("/etrack/{uuid}")
|
|
public String showEtrack(@Valid EventRequestDto eventRequestDto, @PathVariable UUID uuid, final Model model,
|
|
BindingResult bindingResult){
|
|
model.addAttribute("clientUUID", uuid);
|
|
model.addAttribute("eventRequestDto", eventRequestDto);
|
|
return "etrack";
|
|
}
|
|
|
|
@PostMapping("/etrack/{uuid}")
|
|
public String getLogs(@Valid EventRequestDto eventRequestDto, final Model model, BindingResult bindingResult,
|
|
@PathVariable UUID uuid){
|
|
model.addAttribute("clientUUID", uuid);
|
|
populateModelWithLists(model, eventRequestDto, true);
|
|
return "etrack";
|
|
}
|
|
|
|
private void populateModelWithLists(Model model, EventRequestDto eventRequestDto, boolean updateList){
|
|
if (updateList){
|
|
eventList.clear();
|
|
eventList.addAll(etrackService.getEventsByDateTimeAndBusinessKeys(eventRequestDto));
|
|
}
|
|
model.addAttribute("eventList", eventList);
|
|
}
|
|
|
|
@ModelAttribute("eventRequestDto")
|
|
public EventRequestDto eventRequestDto() {
|
|
return EventRequestDto.builder()
|
|
.mockedResponseId(1)
|
|
.localDateTimeFrom(LocalDateTime.of(LocalDate.now(), LocalTime.MIN))
|
|
.localDateTimeTo(LocalDateTime.of(LocalDate.now().plusDays(1), LocalTime.MIDNIGHT))
|
|
.build();
|
|
}
|
|
|
|
|
|
@ModelAttribute("eventList")
|
|
public List<Event> eventList() {
|
|
return eventList;
|
|
}
|
|
|
|
}
|
|
|