summaryrefslogtreecommitdiff
path: root/src/com/p4square/grow/frontend/JsonRequestProvider.java
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2014-02-22 18:15:15 -0800
committerJesse Morgan <jesse@jesterpm.net>2014-02-22 18:15:15 -0800
commit9323fd4f9077bd876e0e220fda6bfd2192dadd59 (patch)
treec8d7054d1710de70460b42d98fa3c87131762a1b /src/com/p4square/grow/frontend/JsonRequestProvider.java
parent586e997fae3f7c262e3098a0c82b531f745db5ee (diff)
Adding support to post new messages.
Other Changes: * JsonEncodedProvider no longer implements Provider. * Only the first answer is shown. Others slide down. * Switch going deeper and the feed.
Diffstat (limited to 'src/com/p4square/grow/frontend/JsonRequestProvider.java')
-rw-r--r--src/com/p4square/grow/frontend/JsonRequestProvider.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/com/p4square/grow/frontend/JsonRequestProvider.java b/src/com/p4square/grow/frontend/JsonRequestProvider.java
index 8eee6d3..a04294d 100644
--- a/src/com/p4square/grow/frontend/JsonRequestProvider.java
+++ b/src/com/p4square/grow/frontend/JsonRequestProvider.java
@@ -16,6 +16,7 @@ import org.restlet.data.Status;
import org.restlet.representation.Representation;
import org.restlet.representation.StringRepresentation;
+import com.p4square.grow.provider.Provider;
import com.p4square.grow.provider.JsonEncodedProvider;
/**
@@ -23,7 +24,7 @@ import com.p4square.grow.provider.JsonEncodedProvider;
*
* @author Jesse Morgan <jesse@jesterpm.net>
*/
-public class JsonRequestProvider<V> extends JsonEncodedProvider<String, V> {
+public class JsonRequestProvider<V> extends JsonEncodedProvider<V> implements Provider<String, V> {
private final Restlet mDispatcher;
@@ -66,7 +67,26 @@ public class JsonRequestProvider<V> extends JsonEncodedProvider<String, V> {
if (!response.getStatus().isSuccess()) {
throw new IOException("Could not put object. " + response.getStatus());
}
-
}
+ /**
+ * Variant of put() which makes a POST request to the url.
+ *
+ * This method may eventually be incorporated into Provider for
+ * creating new objects with auto-generated IDs.
+ *
+ * @param url The url to make the request to.
+ * @param obj The post to post.
+ * @throws IOException on failure.
+ */
+ public void post(String url, V obj) throws IOException {
+ final Request request = new Request(Method.POST, url);
+ request.setEntity(new StringRepresentation(encode(obj)));
+
+ final Response response = mDispatcher.handle(request);
+
+ if (!response.getStatus().isSuccess()) {
+ throw new IOException("Could not put object. " + response.getStatus());
+ }
+ }
}