aboutsummaryrefslogtreecommitdiff
path: root/src/uk/org/ury/backend/server/ServerRequestHandler.java
diff options
context:
space:
mode:
authorMatt Windsor <mattwindsor@btinternet.com>2011-03-21 21:54:31 +0000
committerMatt Windsor <mattwindsor@btinternet.com>2011-03-21 21:54:31 +0000
commitdf7d7981b56a4560c95ea7e9b194080e93398ecf (patch)
treeb3ae4f02d23ae1f7f4951c776ee8d91b0047dd6f /src/uk/org/ury/backend/server/ServerRequestHandler.java
parent2d073129857a42ab4195cd433c8be152e357033f (diff)
GREAT PACKAGE RESHUFFLE: Everything is now organised into frontend, backend and common (to frontend and backend) packages. Things may have been broken. Doc refresh.
Diffstat (limited to 'src/uk/org/ury/backend/server/ServerRequestHandler.java')
-rw-r--r--src/uk/org/ury/backend/server/ServerRequestHandler.java95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/uk/org/ury/backend/server/ServerRequestHandler.java b/src/uk/org/ury/backend/server/ServerRequestHandler.java
new file mode 100644
index 0000000..82764f2
--- /dev/null
+++ b/src/uk/org/ury/backend/server/ServerRequestHandler.java
@@ -0,0 +1,95 @@
+/**
+ *
+ */
+package uk.org.ury.backend.server;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import uk.org.ury.backend.server.ApiRequestHandler;
+import uk.org.ury.backend.server.Server;
+import uk.org.ury.backend.server.exceptions.HandleFailureException;
+
+
+/**
+ * A request handler for server queries.
+ *
+ * @author Matt Windsor
+ */
+
+public class ServerRequestHandler implements ApiRequestHandler
+{
+ /**
+ * Handle a server GET request (that is, a request for data
+ * output).
+ *
+ * @param parameters A key-value map of parameters supplied with
+ * the server request. Typically, the function
+ * parameter will detail the function that the
+ * request handler is expected to perform.
+ *
+ * @param server The server from which the request originated.
+ * This will be able to provide the handler with
+ * pooled resources, for example the database.
+ *
+ * @return A list of lines to return in the body of the
+ * server's response to the client.
+ *
+ * @throws HandleFailureException if the handler cannot
+ * handle the request.
+ */
+
+ @Override
+ public Map<String, Object>
+ handleGetRequest (Map<String, String> parameters, Server server)
+ throws HandleFailureException
+ {
+ Map<String, Object> response = new HashMap<String, Object> ();
+
+ if (parameters.containsKey ("function"))
+ {
+ String function = parameters.get ("function");
+
+ if (function.equals ("info"))
+ {
+ getInfo (response, server);
+ }
+ else if (function.equals ("help"))
+ {
+ response.put ("INFO", "Available functions:");
+ response.put ("INFO", "info - Get server information.");
+ }
+ else if (function.equals ("test"))
+ response.put ("INFO", "Test succeeded.");
+ else
+ throw new HandleFailureException ("Unknown function: "
+ + function + ". (Try 'function=help'.)");
+
+ }
+ else
+ throw new HandleFailureException ("No function provided. (Try 'function=help'.)");
+
+ return response;
+ }
+
+
+ /**
+ * Retrieve information about the server.
+ *
+ * @param response The response list to populate.
+ *
+ * @param server The server providing database resources.
+ *
+ * @throws HandleFailureException if an error occurs
+ * that thwarts the handling of the request.
+ */
+
+ private void
+ getInfo (Map<String, Object> response, Server server)
+ throws HandleFailureException
+ {
+ response.put ("INFO", "University Radio York BAPS Replacement");
+ response.put ("INFO", "Server version is " + server.getVersion ());
+ }
+
+}