Committed by
Ray Milkey
Adding format easier to parse for OSX app.
Change-Id: Ibbf7f9ff7453b4e879da9c8c9215d8bb429a524b
Showing
1 changed file
with
50 additions
and
7 deletions
... | @@ -26,7 +26,9 @@ import javax.servlet.http.HttpServletResponse; | ... | @@ -26,7 +26,9 @@ import javax.servlet.http.HttpServletResponse; |
26 | import java.io.IOException; | 26 | import java.io.IOException; |
27 | import java.io.PrintWriter; | 27 | import java.io.PrintWriter; |
28 | import java.text.SimpleDateFormat; | 28 | import java.text.SimpleDateFormat; |
29 | +import java.util.ArrayList; | ||
29 | import java.util.Date; | 30 | import java.util.Date; |
31 | +import java.util.List; | ||
30 | 32 | ||
31 | import static com.google.common.base.Strings.isNullOrEmpty; | 33 | import static com.google.common.base.Strings.isNullOrEmpty; |
32 | 34 | ||
... | @@ -37,14 +39,59 @@ public class WardenServlet extends HttpServlet { | ... | @@ -37,14 +39,59 @@ public class WardenServlet extends HttpServlet { |
37 | 39 | ||
38 | static Warden warden; | 40 | static Warden warden; |
39 | 41 | ||
42 | + private SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
43 | + | ||
40 | @Override | 44 | @Override |
41 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) | 45 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) |
42 | throws ServletException, IOException { | 46 | throws ServletException, IOException { |
43 | resp.setContentType("text/plain; charset=UTF-8"); | 47 | resp.setContentType("text/plain; charset=UTF-8"); |
44 | - SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
45 | - | ||
46 | try (PrintWriter out = resp.getWriter()) { | 48 | try (PrintWriter out = resp.getWriter()) { |
47 | - for (String cellName : warden.getCells()) { | 49 | + if (req.getPathInfo().endsWith("data")) { |
50 | + String userName = req.getParameter("user"); | ||
51 | + if (userName != null) { | ||
52 | + printUserInfo(out, userName); | ||
53 | + } else { | ||
54 | + printAvailability(out); | ||
55 | + } | ||
56 | + } else { | ||
57 | + printAvailabilityText(out); | ||
58 | + } | ||
59 | + } catch (Exception e) { | ||
60 | + resp.setStatus(Response.SC_INTERNAL_SERVER_ERROR); | ||
61 | + e.printStackTrace(); | ||
62 | + } | ||
63 | + } | ||
64 | + | ||
65 | + private void printUserInfo(PrintWriter out, String userName) { | ||
66 | + Reservation reservation = warden.currentUserReservation(userName); | ||
67 | + out.println(getCellStatus(null, reservation)); | ||
68 | + } | ||
69 | + | ||
70 | + private void printAvailability(PrintWriter out) { | ||
71 | + List<String> list = new ArrayList<>(warden.getCells()); | ||
72 | + list.sort(String::compareTo); | ||
73 | + for (String cellName : list) { | ||
74 | + Reservation reservation = warden.currentCellReservation(cellName); | ||
75 | + out.println(getCellStatus(cellName, reservation)); | ||
76 | + } | ||
77 | + } | ||
78 | + | ||
79 | + private String getCellStatus(String cellName, Reservation reservation) { | ||
80 | + if (reservation != null) { | ||
81 | + long expiration = reservation.time + reservation.duration * 60_000; | ||
82 | + long remaining = (expiration - System.currentTimeMillis()) / 60_000; | ||
83 | + return String.format("%s,%s,%s,%s", reservation.cellName, | ||
84 | + reservation.cellSpec, reservation.userName, remaining); | ||
85 | + } else if (cellName != null) { | ||
86 | + return String.format("%s", cellName); | ||
87 | + } | ||
88 | + return null; | ||
89 | + } | ||
90 | + | ||
91 | + private void printAvailabilityText(PrintWriter out) { | ||
92 | + List<String> list = new ArrayList<>(warden.getCells()); | ||
93 | + list.sort(String::compareTo); | ||
94 | + for (String cellName : list) { | ||
48 | Reservation reservation = warden.currentCellReservation(cellName); | 95 | Reservation reservation = warden.currentCellReservation(cellName); |
49 | if (reservation != null) { | 96 | if (reservation != null) { |
50 | long expiration = reservation.time + reservation.duration * 60_000; | 97 | long expiration = reservation.time + reservation.duration * 60_000; |
... | @@ -59,10 +106,6 @@ public class WardenServlet extends HttpServlet { | ... | @@ -59,10 +106,6 @@ public class WardenServlet extends HttpServlet { |
59 | out.println(String.format("%-10s\t%-10s", cellName, "available")); | 106 | out.println(String.format("%-10s\t%-10s", cellName, "available")); |
60 | } | 107 | } |
61 | } | 108 | } |
62 | - } catch (Exception e) { | ||
63 | - resp.setStatus(Response.SC_INTERNAL_SERVER_ERROR); | ||
64 | - e.printStackTrace(); | ||
65 | - } | ||
66 | } | 109 | } |
67 | 110 | ||
68 | @Override | 111 | @Override | ... | ... |
-
Please register or login to post a comment