Committed by
Ray Milkey
Adding format easier to parse for OSX app.
Change-Id: Ibbf7f9ff7453b4e879da9c8c9215d8bb429a524b
Showing
1 changed file
with
57 additions
and
14 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,27 +39,22 @@ public class WardenServlet extends HttpServlet { | ... | @@ -37,27 +39,22 @@ 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")) { |
48 | - Reservation reservation = warden.currentCellReservation(cellName); | 50 | + String userName = req.getParameter("user"); |
49 | - if (reservation != null) { | 51 | + if (userName != null) { |
50 | - long expiration = reservation.time + reservation.duration * 60_000; | 52 | + printUserInfo(out, userName); |
51 | - long remaining = (expiration - System.currentTimeMillis()) / 60_000; | ||
52 | - out.println(String.format("%-14s\t%-10s\t%s\t%s\t%s mins (%s remaining)", | ||
53 | - cellName + "-" + reservation.cellSpec, | ||
54 | - reservation.userName, | ||
55 | - fmt.format(new Date(reservation.time)), | ||
56 | - fmt.format(new Date(expiration)), | ||
57 | - reservation.duration, remaining)); | ||
58 | } else { | 53 | } else { |
59 | - out.println(String.format("%-10s\t%-10s", cellName, "available")); | 54 | + printAvailability(out); |
60 | } | 55 | } |
56 | + } else { | ||
57 | + printAvailabilityText(out); | ||
61 | } | 58 | } |
62 | } catch (Exception e) { | 59 | } catch (Exception e) { |
63 | resp.setStatus(Response.SC_INTERNAL_SERVER_ERROR); | 60 | resp.setStatus(Response.SC_INTERNAL_SERVER_ERROR); |
... | @@ -65,6 +62,52 @@ public class WardenServlet extends HttpServlet { | ... | @@ -65,6 +62,52 @@ public class WardenServlet extends HttpServlet { |
65 | } | 62 | } |
66 | } | 63 | } |
67 | 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) { | ||
95 | + Reservation reservation = warden.currentCellReservation(cellName); | ||
96 | + if (reservation != null) { | ||
97 | + long expiration = reservation.time + reservation.duration * 60_000; | ||
98 | + long remaining = (expiration - System.currentTimeMillis()) / 60_000; | ||
99 | + out.println(String.format("%-14s\t%-10s\t%s\t%s\t%s mins (%s remaining)", | ||
100 | + cellName + "-" + reservation.cellSpec, | ||
101 | + reservation.userName, | ||
102 | + fmt.format(new Date(reservation.time)), | ||
103 | + fmt.format(new Date(expiration)), | ||
104 | + reservation.duration, remaining)); | ||
105 | + } else { | ||
106 | + out.println(String.format("%-10s\t%-10s", cellName, "available")); | ||
107 | + } | ||
108 | + } | ||
109 | + } | ||
110 | + | ||
68 | @Override | 111 | @Override |
69 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) | 112 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) |
70 | throws ServletException, IOException { | 113 | throws ServletException, IOException { | ... | ... |
-
Please register or login to post a comment