1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package net.anyflow.lannister.httphandler.api;
18
19 import com.fasterxml.jackson.core.JsonProcessingException;
20 import com.fasterxml.jackson.databind.ObjectMapper;
21 import com.fasterxml.jackson.databind.SerializationFeature;
22
23 import io.netty.handler.codec.http.HttpResponseStatus;
24 import net.anyflow.lannister.http.HttpRequestHandler;
25
26 @HttpRequestHandler.Handles(paths = { "api/statistics" }, httpMethods = { "GET" })
27 public class Statistics extends HttpRequestHandler {
28 private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(Statistics.class);
29
30 @Override
31 public String service() {
32
33 try {
34 return new ObjectMapper().configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true)
35 .writeValueAsString(net.anyflow.lannister.Statistics.INSTANCE.data());
36 }
37 catch (JsonProcessingException e) {
38 logger.error(e.getMessage(), e);
39
40 this.httpResponse().setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
41 return null;
42 }
43 }
44 }