com.outbrain.ob1k.client.endpoints.ClientEndpointRequestBuilder Maven / Gradle / Ivy
The newest version!
package com.outbrain.ob1k.client.endpoints;
import com.outbrain.ob1k.HttpRequestMethodType;
import com.outbrain.ob1k.client.ctx.ClientRequestContext;
import com.outbrain.ob1k.client.endpoints.AbstractClientEndpoint.Endpoint;
import com.outbrain.ob1k.http.HttpClient;
import com.outbrain.ob1k.http.RequestBuilder;
import com.outbrain.ob1k.http.marshalling.MarshallingStrategy;
import com.outbrain.ob1k.http.utils.UrlUtils;
import org.apache.commons.codec.EncoderException;
import java.io.IOException;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
/**
* @author marenzon
*/
public class ClientEndpointRequestBuilder {
public static RequestBuilder build(final HttpClient httpClient, final Endpoint endpoint, final ClientRequestContext ctx,
final MarshallingStrategy marshallingStrategy) throws IOException, EncoderException {
final RequestBuilder requestBuilder = getRequestBuilder(endpoint, httpClient, ctx);
final Object[] requestValues = setPathParamsFromValues(requestBuilder, ctx);
requestBuilder.setMarshallingStrategy(marshallingStrategy);
requestBuilder.setBody(requestValues);
requestBuilder.setContentType(endpoint.getContentType());
return requestBuilder;
}
private static Object[] setPathParamsFromValues(final RequestBuilder requestBuilder, final ClientRequestContext ctx)
throws EncoderException {
final Object[] params = ctx.getParams();
if (params == null) {
return new Object[0];
}
final List © 2015 - 2025 Weber Informatics LLC | Privacy Policy