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.google.common.base.Strings;
22
23 import io.netty.handler.codec.http.HttpResponseStatus;
24 import net.anyflow.lannister.http.HttpRequestHandler;
25
26 @HttpRequestHandler.Handles(paths = { "api/messageReferenceCounts" }, httpMethods = { "GET" })
27 public class MessageReferenceCounts extends HttpRequestHandler {
28 private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(MessageReferenceCounts.class);
29
30 @Override
31 public String service() {
32 String filter = Strings.nullToEmpty(httpRequest().parameter("filter"));
33
34 switch (filter) {
35 case "":
36 case "all":
37 return all();
38
39 default:
40 return null;
41 }
42 }
43
44 private String all() {
45 try {
46 return new ObjectMapper()
47 .writeValueAsString(net.anyflow.lannister.message.MessageReferenceCounts.INSTANCE.data());
48 }
49 catch (JsonProcessingException e) {
50 logger.error(e.getMessage(), e);
51
52 this.httpResponse().setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
53 return null;
54 }
55 }
56 }