From 9323fd4f9077bd876e0e220fda6bfd2192dadd59 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 22 Feb 2014 18:15:15 -0800 Subject: 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. --- .../grow/frontend/JsonRequestProvider.java | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src/com/p4square/grow/frontend/JsonRequestProvider.java') 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 */ -public class JsonRequestProvider extends JsonEncodedProvider { +public class JsonRequestProvider extends JsonEncodedProvider implements Provider { private final Restlet mDispatcher; @@ -66,7 +67,26 @@ public class JsonRequestProvider extends JsonEncodedProvider { 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()); + } + } } -- cgit v1.2.3