001
002package io.vrap.rmf.base.client;
003
004import java.util.ArrayList;
005import java.util.List;
006import java.util.function.Supplier;
007
008import javax.annotation.Nullable;
009
010import io.vrap.rmf.base.client.http.*;
011import io.vrap.rmf.base.client.oauth2.TokenSupplier;
012
013/**
014 * @deprecated use {@link ClientBuilder} instead
015 */
016@Deprecated
017public class ClientFactory {
018
019    public static final String COMMERCETOOLS = "commercetools";
020
021    public static ApiHttpClient create(final String apiBaseUrl, final VrapHttpClient httpClient,
022            final TokenSupplier tokenSupplier) {
023        return create(apiBaseUrl, httpClient, tokenSupplier,
024            (request, topic) -> InternalLogger.getLogger(COMMERCETOOLS + "." + topic), new ArrayList<>(), null);
025    }
026
027    public static ApiHttpClient create(final String apiBaseUrl, final VrapHttpClient httpClient,
028            final TokenSupplier tokenSupplier, final Supplier<String> userAgentSupplier) {
029        return create(apiBaseUrl, httpClient, tokenSupplier,
030            (request, topic) -> InternalLogger.getLogger(COMMERCETOOLS + "." + topic), userAgentSupplier,
031            new ArrayList<>(), null);
032    }
033
034    public static ApiHttpClient create(final String apiBaseUrl, final VrapHttpClient httpClient,
035            final TokenSupplier tokenSupplier, final List<Middleware> middlewares) {
036        return create(apiBaseUrl, httpClient, tokenSupplier,
037            (request, topic) -> InternalLogger.getLogger(COMMERCETOOLS + "." + topic), middlewares, null);
038    }
039
040    public static ApiHttpClient create(final String apiBaseUrl, final VrapHttpClient httpClient,
041            final TokenSupplier tokenSupplier, final Supplier<String> userAgentSupplier,
042            final List<Middleware> middlewares) {
043        return create(apiBaseUrl, httpClient, tokenSupplier,
044            (request, topic) -> InternalLogger.getLogger(COMMERCETOOLS + "." + topic), userAgentSupplier, middlewares,
045            null);
046    }
047
048    public static ApiHttpClient create(final String apiBaseUrl, final VrapHttpClient httpClient,
049            final TokenSupplier tokenSupplier, final List<Middleware> middlewares,
050            final CorrelationIdProvider correlationIdProvider) {
051        return create(apiBaseUrl, httpClient, tokenSupplier,
052            (request, topic) -> InternalLogger.getLogger(COMMERCETOOLS + "." + topic), middlewares,
053            correlationIdProvider);
054    }
055
056    public static ApiHttpClient create(final String apiBaseUrl, final VrapHttpClient httpClient,
057            final TokenSupplier tokenSupplier, final Supplier<String> userAgentSupplier,
058            final List<Middleware> middlewares, final CorrelationIdProvider correlationIdProvider) {
059        return create(apiBaseUrl, httpClient, tokenSupplier,
060            (request, topic) -> InternalLogger.getLogger(COMMERCETOOLS + "." + topic), userAgentSupplier, middlewares,
061            correlationIdProvider);
062    }
063
064    public static ApiHttpClient create(final String apiBaseUrl, final VrapHttpClient httpClient,
065            final TokenSupplier tokenSupplier, final InternalLoggerFactory internalLoggerFactory,
066            List<Middleware> middlewares) {
067        return create(apiBaseUrl, httpClient, tokenSupplier, internalLoggerFactory, middlewares, null);
068    }
069
070    public static ApiHttpClient create(final String apiBaseUrl, final VrapHttpClient httpClient,
071            final TokenSupplier tokenSupplier, final InternalLoggerFactory internalLoggerFactory,
072            final Supplier<String> userAgentSupplier, List<Middleware> middlewares) {
073        return create(apiBaseUrl, httpClient, tokenSupplier, internalLoggerFactory, userAgentSupplier, middlewares,
074            null);
075    }
076
077    public static ApiHttpClient create(final String apiBaseUrl, final VrapHttpClient httpClient,
078            final TokenSupplier tokenSupplier, final InternalLoggerFactory internalLoggerFactory,
079            List<Middleware> middlewares, @Nullable final CorrelationIdProvider correlationIdProvider) {
080        return create(apiBaseUrl, httpClient, tokenSupplier, internalLoggerFactory,
081            ClientBuilder::buildDefaultUserAgent, middlewares, correlationIdProvider);
082    }
083
084    public static ApiHttpClient create(final String apiBaseUrl, final VrapHttpClient httpClient,
085            final TokenSupplier tokenSupplier, final InternalLoggerFactory internalLoggerFactory,
086            final Supplier<String> userAgentSupplier, List<Middleware> middlewares,
087            @Nullable final CorrelationIdProvider correlationIdProvider) {
088        return ClientBuilder.of(httpClient)
089                .defaultClient(apiBaseUrl)
090                .withInternalLoggerFactory(internalLoggerFactory)
091                .withUserAgentSupplier(userAgentSupplier)
092                .withTokenSupplier(tokenSupplier)
093                .addCorrelationIdProvider(correlationIdProvider)
094                .addMiddlewares(middlewares)
095                .build();
096    }
097}