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 Standalone 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 *            .standalonePrices()
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 ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString extends
035        StringBodyApiMethod<ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString, com.commercetools.importapi.models.importrequests.ImportResponse>
036        implements
037        com.commercetools.importapi.client.Secured_by_manage_standalone_pricesTrait<ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString> {
038
039    private String projectKey;
040    private String importContainerKey;
041
042    private String standalonePriceImportRequest;
043
044    public ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString(final ApiHttpClient apiHttpClient,
045            String projectKey, String importContainerKey, String standalonePriceImportRequest) {
046        super(apiHttpClient);
047        this.projectKey = projectKey;
048        this.importContainerKey = importContainerKey;
049        this.standalonePriceImportRequest = standalonePriceImportRequest;
050    }
051
052    public ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString(
053            ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString t) {
054        super(t);
055        this.projectKey = t.projectKey;
056        this.importContainerKey = t.importContainerKey;
057        this.standalonePriceImportRequest = t.standalonePriceImportRequest;
058    }
059
060    @Override
061    protected ApiHttpRequest buildHttpRequest() {
062        List<String> params = new ArrayList<>(getQueryParamUriStrings());
063        String httpRequestPath = String.format("%s/standalone-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            standalonePriceImportRequest.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 standalonePriceImportRequest;
103    }
104
105    public ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString withBody(
106            String standalonePriceImportRequest) {
107        ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString t = copy();
108        t.standalonePriceImportRequest = standalonePriceImportRequest;
109        return t;
110    }
111
112    @Override
113    public boolean equals(Object o) {
114        if (this == o)
115            return true;
116
117        if (o == null || getClass() != o.getClass())
118            return false;
119
120        ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString that = (ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString) o;
121
122        return new EqualsBuilder().append(projectKey, that.projectKey)
123                .append(importContainerKey, that.importContainerKey)
124                .append(standalonePriceImportRequest, that.standalonePriceImportRequest)
125                .isEquals();
126    }
127
128    @Override
129    public int hashCode() {
130        return new HashCodeBuilder(17, 37).append(projectKey)
131                .append(importContainerKey)
132                .append(standalonePriceImportRequest)
133                .toHashCode();
134    }
135
136    @Override
137    protected ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString copy() {
138        return new ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPostString(this);
139    }
140}