
com.jpattern.gwt.client.communication.rest.PostProxy Maven / Gradle / Ivy
package com.jpattern.gwt.client.communication.rest;
import com.google.gwt.http.client.RequestBuilder;
import com.jpattern.gwt.client.IApplicationProvider;
import com.jpattern.gwt.client.communication.AProxy;
import com.jpattern.gwt.client.communication.ICallbackAction;
import com.jpattern.gwt.client.logger.ILogger;
import com.jpattern.gwt.client.serializer.IObjectSerializer;
import com.jpattern.gwt.client.util.QueryString;
import com.jpattern.shared.result.facade.ICommandFacadeResult;
/**
*
* @author Francesco Cina'
*
* @param
*/
public class PostProxy,Z> extends AProxy {
private final String url;
private final Z data;
private final IObjectSerializer sendJsonBuilder;
private final IObjectSerializer resultJsonBuilder;
public PostProxy(ICallbackAction callbackAction, IObjectSerializer resultJsonBuilder, String url, IObjectSerializer sendJsonBuilder, Z data, IApplicationProvider provider) {
super(callbackAction, provider);
this.resultJsonBuilder = resultJsonBuilder;
this.url=url;
this.sendJsonBuilder = sendJsonBuilder;
this.data = data;
}
@Override
protected void execute(ICallbackAction callbackAction, IApplicationProvider provider) throws Exception {
ILogger logger = provider.getLoggerService().getLogger(this.getClass());
logger.info("execute", "Begin execute - call URL " + url);
RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, QueryString.addTimestampQueryToUrl(url));
builder.setHeader("Content-type", "application/json");
String json = sendJsonBuilder.serialize(data);
logger.debug("execute", "Json object to send to server: [" + json + "]");
ProxyRequestCallback requestCallBack = new ProxyRequestCallback(callbackAction, resultJsonBuilder, provider);
builder.sendRequest(json, requestCallBack);
logger.debug("execute", "End execute - call URL " + url);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy