diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2014-02-22 18:15:15 -0800 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2014-02-22 18:15:15 -0800 |
commit | 9323fd4f9077bd876e0e220fda6bfd2192dadd59 (patch) | |
tree | c8d7054d1710de70460b42d98fa3c87131762a1b /src/com/p4square/grow/frontend/JsonRequestProvider.java | |
parent | 586e997fae3f7c262e3098a0c82b531f745db5ee (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.java | 24 |
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()); + } + } } |