aboutsummaryrefslogtreecommitdiff
path: root/src/uk/org/ury/library/LibraryRequestHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/uk/org/ury/library/LibraryRequestHandler.java')
-rw-r--r--src/uk/org/ury/library/LibraryRequestHandler.java23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/uk/org/ury/library/LibraryRequestHandler.java b/src/uk/org/ury/library/LibraryRequestHandler.java
index 30bb7fc..835e50e 100644
--- a/src/uk/org/ury/library/LibraryRequestHandler.java
+++ b/src/uk/org/ury/library/LibraryRequestHandler.java
@@ -4,6 +4,7 @@
package uk.org.ury.library;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -19,6 +20,7 @@ import uk.org.ury.server.RequestHandler;
import uk.org.ury.server.exceptions.HandleFailureException;
import uk.org.ury.server.protocol.Directive;
+
/**
* A request handler for library queries.
*
@@ -48,11 +50,11 @@ public class LibraryRequestHandler implements RequestHandler
*/
@Override
- public List<String>
+ public Map<String, Object>
handleGetRequest (Map<String, String> parameters, Server server)
throws HandleFailureException
{
- List<String> response = new ArrayList<String> ();
+ Map<String, Object> response = new HashMap<String, Object>();
if (parameters.containsKey ("function"))
{
@@ -64,8 +66,9 @@ public class LibraryRequestHandler implements RequestHandler
}
else if (function.equals ("help"))
{
- response.add ("INFO: Available functions:");
- response.add ("INFO: search (string) - search library for string.");
+ response.put (Directive.INFO.toString (),
+ "Available functions:");
+ response.put (Directive.INFO.toString (), "search (string) - search library for string.");
}
else
throw new HandleFailureException ("Unknown function: "
@@ -97,7 +100,7 @@ public class LibraryRequestHandler implements RequestHandler
private void
doSearch (Map<String, String> parameters,
- List<String> response, Server server)
+ Map<String, Object> response, Server server)
throws HandleFailureException
{
if (parameters.containsKey ("search") == false)
@@ -123,14 +126,14 @@ public class LibraryRequestHandler implements RequestHandler
try
{
+ List<Map<String, String>> itemArray = new ArrayList<Map<String, String>> ();
+
for (LibraryItem li : LibraryUtils.search (dd, search))
{
- response.add (Directive.ITEM_START.toString ());
-
- response.addAll (li.asResponse ());
-
- response.add (Directive.ITEM_END.toString ());
+ itemArray.add (li.asResponse ());
}
+
+ response.put ("items", itemArray);
}
catch (QueryFailureException e)
{