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 | 42503d407a5ec4efdb61a4d009f1bd46ffc8a965 (patch) | |
tree | 59933de4d81225f748a218f84c80f5e3edea77ce /src/com/p4square/grow/frontend/JsonRequestProvider.java | |
parent | 9526fe75f2343e50f35c436dc0b4a4beb7de7eff (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()); + } + } } |