1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 package fr.paris.lutece.plugins.lutecetools.web.rs;
40
41 import fr.paris.lutece.plugins.lutecetools.business.Stats;
42 import fr.paris.lutece.plugins.lutecetools.service.StatsService;
43 import fr.paris.lutece.plugins.rest.service.RestConstants;
44 import fr.paris.lutece.util.xml.XmlUtil;
45 import java.io.IOException;
46 import javax.ws.rs.GET;
47 import javax.ws.rs.HeaderParam;
48 import javax.ws.rs.Path;
49 import javax.ws.rs.QueryParam;
50 import javax.ws.rs.core.HttpHeaders;
51 import javax.ws.rs.core.MediaType;
52 import javax.ws.rs.core.Response;
53 import com.fasterxml.jackson.databind.ObjectMapper;
54
55
56
57
58
59 @Path( RestConstants.BASE_PATH + Constants.PATH_PLUGIN + Constants.PATH_STATS )
60 public class StatsRest
61 {
62 private static final String KEY_STATS = "stats";
63 private static final String KEY_MAVEN_COUNT = "maven-count";
64 private static final String KEY_GITHUB_COUNT = "github-count";
65 private static final String KEY_GITHUB_OK = "github-ok";
66 private static final String KEY_JIRA_OK = "jira-ok";
67 private static final String KEY_README_OK = "readme-ok";
68
69 private static final ObjectMapper _mapper = new ObjectMapper( );
70
71 @GET
72 @Path( "/" )
73 public Response getStats( @HeaderParam( HttpHeaders.ACCEPT ) String strAccept, @QueryParam( Constants.PARAMETER_FORMAT ) String strFormat )
74 throws IOException
75 {
76 String entity;
77 String mediaType = MediaType.APPLICATION_JSON;
78
79 if ( strFormat != null )
80 {
81 if ( strFormat.equals( Constants.MEDIA_TYPE_XML ) )
82 {
83 entity = getStatsXml( );
84 mediaType = MediaType.APPLICATION_XML;
85 }
86 else
87 {
88 entity = getStatsJson( );
89 }
90 }
91 else
92 if ( ( strAccept != null ) && strAccept.contains( MediaType.APPLICATION_XML ) )
93 {
94 entity = getStatsXml( );
95 mediaType = MediaType.APPLICATION_XML;
96 }
97 else
98 {
99 entity = getStatsJson( );
100 }
101
102 return Response.ok( entity, mediaType ).build( );
103 }
104
105 private String getStatsJson( ) throws IOException
106 {
107 Stats stats = StatsService.getStats( );
108 return _mapper.writeValueAsString( stats );
109 }
110
111 private String getStatsXml( )
112 {
113 Stats stats = StatsService.getStats( );
114 StringBuffer sbXML = new StringBuffer( XmlUtil.getXmlHeader( ) );
115 XmlUtil.beginElement( sbXML, KEY_STATS );
116 XmlUtil.addElement( sbXML, KEY_MAVEN_COUNT, stats.getMavenCount( ) );
117 XmlUtil.addElement( sbXML, KEY_GITHUB_COUNT, stats.getGithubCount( ) );
118 XmlUtil.addElement( sbXML, KEY_GITHUB_OK, stats.getGithubOK( ) );
119 XmlUtil.addElement( sbXML, KEY_JIRA_OK, stats.getJiraOK( ) );
120 XmlUtil.addElement( sbXML, KEY_README_OK, stats.getReadmeOK( ) );
121 XmlUtil.endElement( sbXML, KEY_STATS );
122
123 return sbXML.toString( );
124 }
125
126 }