11package org .matrixnetwork .stats2 .rest ;
22
3+ import net .skinsrestorer .api .SkinsRestorerAPI ;
34import org .bukkit .entity .Player ;
45import org .hibernate .Session ;
56import org .hibernate .Transaction ;
7+ import org .json .simple .JSONObject ;
8+ import org .json .simple .parser .JSONParser ;
69import org .matrixnetwork .stats2 .MatrixStats ;
710import org .matrixnetwork .stats2 .entity .MatrixPlayer ;
811import org .matrixnetwork .stats2 .manager .DataManager ;
12+ import org .matrixnetwork .stats2 .pojo .PlayerStatsDTO ;
13+ import org .matrixnetwork .stats2 .util .Auth ;
914
10- import javax .ws .rs .GET ;
11- import javax .ws .rs .Path ;
12- import javax .ws .rs .PathParam ;
13- import javax .ws .rs .Produces ;
15+ import javax .ws .rs .*;
1416import javax .ws .rs .core .MediaType ;
1517import javax .ws .rs .core .Response ;
18+ import java .util .stream .Collectors ;
1619
1720@ Path ("/org/matrixnetwork/stats2" )
1821public class StatsResource {
22+ private JSONParser parser = new JSONParser ();
23+
24+ @ Produces (MediaType .APPLICATION_JSON )
25+ @ Path ("all" )
26+ @ GET
27+ public Response getStats (@ HeaderParam ("Authorization" ) String tokenStr ) {
28+ if (tokenStr == null ) {
29+ return Response .status (400 ).build ();
30+ }
31+
32+ String username = Auth .getInstance ().verifyToken (tokenStr );
33+
34+ if (username != null ) {
35+ try {
36+ MatrixPlayer mp = DataManager .getInstance ().getMatrixPlayerByProperty ("username" , username );
37+ return Response .ok (mp .getStats ().stream ()
38+ .map (PlayerStatsDTO ::from )
39+ .collect (Collectors .toList ())).build ();
40+ } catch (Exception ex ) {
41+ MatrixStats .getPlugin ().getLogger ().info (ex .toString ());
42+ MatrixStats .getPlugin ().getLogger ().info (ex .getMessage ());
43+ return Response .noContent ().build ();
44+ }
45+ }
46+ else {
47+ return Response .status (403 ).build ();
48+ }
49+ }
50+
51+ @ Produces (MediaType .APPLICATION_JSON )
52+ @ Path ("latest" )
53+ @ GET
54+ public Response getLatestStats (@ HeaderParam ("Authorization" ) String tokenStr ) {
55+ if (tokenStr == null ) {
56+ return Response .status (400 ).build ();
57+ }
58+ DataManager dm = DataManager .getInstance ();
59+ String username = Auth .getInstance ().verifyToken (tokenStr );
60+
61+ if (username != null ) {
62+ try {
63+ MatrixPlayer mp = dm .getMatrixPlayerByProperty ("username" , username );
64+ return Response .ok (PlayerStatsDTO .from (dm .getLastStatisticsOfPlayer (mp .getId ()))).build ();
65+ } catch (Exception ex ) {
66+ MatrixStats .getPlugin ().getLogger ().info (ex .toString ());
67+ MatrixStats .getPlugin ().getLogger ().info (ex .getMessage ());
68+ return Response .noContent ().build ();
69+ }
70+ }
71+ else {
72+ return Response .status (403 ).build ();
73+ }
74+ }
1975
2076 @ Path ("/{username}" )
2177 @ GET
@@ -33,7 +89,7 @@ public Response meet(@PathParam("username") String username) {
3389 t .commit ();
3490 }
3591
36- return Response .ok (mP . toJson (). toJSONString () ).build ();
92+ return Response .ok (mP ).build ();
3793 }
3894 else {
3995 return Response .status (404 ).build ();
0 commit comments