001
002package com.commercetools.ml.client;
003
004import java.net.URI;
005import java.time.Duration;
006import java.util.ArrayList;
007import java.util.List;
008import java.util.concurrent.CompletableFuture;
009
010import io.vrap.rmf.base.client.*;
011import io.vrap.rmf.base.client.utils.Generated;
012
013import org.apache.commons.lang3.builder.EqualsBuilder;
014import org.apache.commons.lang3.builder.HashCodeBuilder;
015
016/**
017 *
018 *
019 * <hr>
020 * <div class=code-example>
021 * <pre><code class='java'>{@code
022 *   CompletableFuture<ApiHttpResponse<com.commercetools.ml.models.similar_products.SimilarProductsTaskStatus>> result = apiRoot
023 *            .withProjectKey("{projectKey}")
024 *            .similarities()
025 *            .products()
026 *            .status()
027 *            .withTaskId("{taskId}")
028 *            .get()
029 *            .execute()
030 * }</code></pre>
031 * </div>
032 */
033@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
034public class ByProjectKeySimilaritiesProductsStatusByTaskIdGet extends
035        ApiMethod<ByProjectKeySimilaritiesProductsStatusByTaskIdGet, com.commercetools.ml.models.similar_products.SimilarProductsTaskStatus> {
036
037    private String projectKey;
038    private String taskId;
039
040    public ByProjectKeySimilaritiesProductsStatusByTaskIdGet(final ApiHttpClient apiHttpClient, String projectKey,
041            String taskId) {
042        super(apiHttpClient);
043        this.projectKey = projectKey;
044        this.taskId = taskId;
045    }
046
047    public ByProjectKeySimilaritiesProductsStatusByTaskIdGet(ByProjectKeySimilaritiesProductsStatusByTaskIdGet t) {
048        super(t);
049        this.projectKey = t.projectKey;
050        this.taskId = t.taskId;
051    }
052
053    @Override
054    protected ApiHttpRequest buildHttpRequest() {
055        List<String> params = new ArrayList<>(getQueryParamUriStrings());
056        String httpRequestPath = String.format("/%s/similarities/products/status/%s", this.projectKey, this.taskId);
057        if (!params.isEmpty()) {
058            httpRequestPath += "?" + String.join("&", params);
059        }
060        return new ApiHttpRequest(ApiHttpMethod.GET, URI.create(httpRequestPath), getHeaders(), null);
061    }
062
063    @Override
064    public ApiHttpResponse<com.commercetools.ml.models.similar_products.SimilarProductsTaskStatus> executeBlocking(
065            final ApiHttpClient client, final Duration timeout) {
066        return executeBlocking(client, timeout,
067            com.commercetools.ml.models.similar_products.SimilarProductsTaskStatus.class);
068    }
069
070    @Override
071    public CompletableFuture<ApiHttpResponse<com.commercetools.ml.models.similar_products.SimilarProductsTaskStatus>> execute(
072            final ApiHttpClient client) {
073        return execute(client, com.commercetools.ml.models.similar_products.SimilarProductsTaskStatus.class);
074    }
075
076    public String getProjectKey() {
077        return this.projectKey;
078    }
079
080    public String getTaskId() {
081        return this.taskId;
082    }
083
084    public void setProjectKey(final String projectKey) {
085        this.projectKey = projectKey;
086    }
087
088    public void setTaskId(final String taskId) {
089        this.taskId = taskId;
090    }
091
092    @Override
093    public boolean equals(Object o) {
094        if (this == o)
095            return true;
096
097        if (o == null || getClass() != o.getClass())
098            return false;
099
100        ByProjectKeySimilaritiesProductsStatusByTaskIdGet that = (ByProjectKeySimilaritiesProductsStatusByTaskIdGet) o;
101
102        return new EqualsBuilder().append(projectKey, that.projectKey).append(taskId, that.taskId).isEquals();
103    }
104
105    @Override
106    public int hashCode() {
107        return new HashCodeBuilder(17, 37).append(projectKey).append(taskId).toHashCode();
108    }
109
110    @Override
111    protected ByProjectKeySimilaritiesProductsStatusByTaskIdGet copy() {
112        return new ByProjectKeySimilaritiesProductsStatusByTaskIdGet(this);
113    }
114}