package de.otto.edison.status.controller;
import de.otto.edison.status.indicator.ApplicationStatusAggregator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import static de.otto.edison.status.controller.StatusRepresentation.statusRepresentationOf;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
@RestController
public class StatusController {
@Autowired
private ApplicationStatusAggregator aggregator;
@RequestMapping(
value = "/internal/status",
produces = {
"application/hal+json",
"application/vnd.otto.monitoring.status+json",
"application/json"},
method = GET
)
public StatusRepresentation getStatusAsJson() {
return statusRepresentationOf(aggregator.aggregatedStatus());
}
@RequestMapping(
value = "/internal/status",
produces = "text/html",
method = GET
)
public ModelAndView getStatusAsHtml() {
return new ModelAndView("status", "status", aggregator.aggregatedStatus());
}
}