001
002package com.commercetools.importapi.client;
003
004import java.net.URI;
005import java.nio.charset.StandardCharsets;
006import java.time.Duration;
007import java.util.ArrayList;
008import java.util.List;
009import java.util.concurrent.CompletableFuture;
010
011import io.vrap.rmf.base.client.*;
012import io.vrap.rmf.base.client.utils.Generated;
013
014import org.apache.commons.lang3.builder.EqualsBuilder;
015import org.apache.commons.lang3.builder.HashCodeBuilder;
016
017/**
018 *  <p>Creates a request for creating new Prices or updating existing ones.</p>
019 *
020 * <hr>
021 * <div class=code-example>
022 * <pre><code class='java'>{@code
023 *   CompletableFuture<ApiHttpResponse<com.commercetools.importapi.models.importrequests.ImportResponse>> result = apiRoot
024 *            .withProjectKeyValue("{projectKey}")
025 *            .prices()
026 *            .importContainers()
027 *            .withImportContainerKeyValue("{importContainerKey}")
028 *            .post("")
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 ByProjectKeyPricesImportContainersByImportContainerKeyPostString extends
035        StringBodyApiMethod<ByProjectKeyPricesImportContainersByImportContainerKeyPostString, com.commercetools.importapi.models.importrequests.ImportResponse>
036        implements
037        com.commercetools.importapi.client.Secured_by_manage_productsTrait<ByProjectKeyPricesImportContainersByImportContainerKeyPostString> {
038
039    private String projectKey;
040    private String importContainerKey;
041
042    private String priceImportRequest;
043
044    public ByProjectKeyPricesImportContainersByImportContainerKeyPostString(final ApiHttpClient apiHttpClient,
045            String projectKey, String importContainerKey, String priceImportRequest) {
046        super(apiHttpClient);
047        this.projectKey = projectKey;
048        this.importContainerKey = importContainerKey;
049        this.priceImportRequest = priceImportRequest;
050    }
051
052    public ByProjectKeyPricesImportContainersByImportContainerKeyPostString(
053            ByProjectKeyPricesImportContainersByImportContainerKeyPostString t) {
054        super(t);
055        this.projectKey = t.projectKey;
056        this.importContainerKey = t.importContainerKey;
057        this.priceImportRequest = t.priceImportRequest;
058    }
059
060    @Override
061    protected ApiHttpRequest buildHttpRequest() {
062        List<String> params = new ArrayList<>(getQueryParamUriStrings());
063        String httpRequestPath = String.format("%s/prices/import-containers/%s", this.projectKey,
064            this.importContainerKey);
065        if (!params.isEmpty()) {
066            httpRequestPath += "?" + String.join("&", params);
067        }
068        return new ApiHttpRequest(ApiHttpMethod.POST, URI.create(httpRequestPath), getHeaders(),
069            priceImportRequest.getBytes(StandardCharsets.UTF_8));
070
071    }
072
073    @Override
074    public ApiHttpResponse<com.commercetools.importapi.models.importrequests.ImportResponse> executeBlocking(
075            final ApiHttpClient client, final Duration timeout) {
076        return executeBlocking(client, timeout, com.commercetools.importapi.models.importrequests.ImportResponse.class);
077    }
078
079    @Override
080    public CompletableFuture<ApiHttpResponse<com.commercetools.importapi.models.importrequests.ImportResponse>> execute(
081            final ApiHttpClient client) {
082        return execute(client, com.commercetools.importapi.models.importrequests.ImportResponse.class);
083    }
084
085    public String getProjectKey() {
086        return this.projectKey;
087    }
088
089    public String getImportContainerKey() {
090        return this.importContainerKey;
091    }
092
093    public void setProjectKey(final String projectKey) {
094        this.projectKey = projectKey;
095    }
096
097    public void setImportContainerKey(final String importContainerKey) {
098        this.importContainerKey = importContainerKey;
099    }
100
101    public String getBody() {
102        return priceImportRequest;
103    }
104
105    public ByProjectKeyPricesImportContainersByImportContainerKeyPostString withBody(String priceImportRequest) {
106        ByProjectKeyPricesImportContainersByImportContainerKeyPostString t = copy();
107        t.priceImportRequest = priceImportRequest;
108        return t;
109    }
110
111    @Override
112    public boolean equals(Object o) {
113        if (this == o)
114            return true;
115
116        if (o == null || getClass() != o.getClass())
117            return false;
118
119        ByProjectKeyPricesImportContainersByImportContainerKeyPostString that = (ByProjectKeyPricesImportContainersByImportContainerKeyPostString) o;
120
121        return new EqualsBuilder().append(projectKey, that.projectKey)
122                .append(importContainerKey, that.importContainerKey)
123                .append(priceImportRequest, that.priceImportRequest)
124                .isEquals();
125    }
126
127    @Override
128    public int hashCode() {
129        return new HashCodeBuilder(17, 37).append(projectKey)
130                .append(importContainerKey)
131                .append(priceImportRequest)
132                .toHashCode();
133    }
134
135    @Override
136    protected ByProjectKeyPricesImportContainersByImportContainerKeyPostString copy() {
137        return new ByProjectKeyPricesImportContainersByImportContainerKeyPostString(this);
138    }
139}