package fr.ekito.example.web.rest;
import fr.ekito.example.security.AuthoritiesConstants;
import fr.ekito.example.service.AuditEventService;
import fr.ekito.example.web.propertyeditors.LocaleDateTimeEditor;
import org.joda.time.LocalDateTime;
import org.springframework.boot.actuate.audit.AuditEvent;
import org.springframework.http.MediaType;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
import javax.annotation.security.RolesAllowed;
import javax.inject.Inject;
import java.util.List;
/**
* REST controller for getting the audit events.
*/
@RestController
@RequestMapping("/app")
public class AuditResource {
@Inject
private AuditEventService auditEventService;
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(LocalDateTime.class, new LocaleDateTimeEditor("yyyy-MM-dd", false));
}
@RequestMapping(value = "/rest/audits/all",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@RolesAllowed(AuthoritiesConstants.ADMIN)
public List<AuditEvent> findAll() {
return auditEventService.findAll();
}
@RequestMapping(value = "/rest/audits/byDates",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@RolesAllowed(AuthoritiesConstants.ADMIN)
public List<AuditEvent> findByDates(@RequestParam(value = "fromDate") LocalDateTime fromDate,
@RequestParam(value = "toDate") LocalDateTime toDate) {
return auditEventService.findByDates(fromDate, toDate);
}
}