001
002package com.commercetools.importapi.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 *  <p>Creates a request for creating new Standalone Prices or updating existing ones.</p>
018 *
019 * <hr>
020 * <div class=code-example>
021 * <pre><code class='java'>{@code
022 *   CompletableFuture<ApiHttpResponse<com.commercetools.importapi.models.importrequests.ImportResponse>> result = apiRoot
023 *            .withProjectKeyValue("{projectKey}")
024 *            .standalonePrices()
025 *            .importContainers()
026 *            .withImportContainerKeyValue("{importContainerKey}")
027 *            .post(null)
028 *            .execute()
029 * }</code></pre>
030 * </div>
031 */
032@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
033public class ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost extends
034        BodyApiMethod<ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost, com.commercetools.importapi.models.importrequests.ImportResponse, com.commercetools.importapi.models.importrequests.StandalonePriceImportRequest>
035        implements
036        com.commercetools.importapi.client.Secured_by_manage_standalone_pricesTrait<ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost> {
037
038    private String projectKey;
039    private String importContainerKey;
040
041    private com.commercetools.importapi.models.importrequests.StandalonePriceImportRequest standalonePriceImportRequest;
042
043    public ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost(final ApiHttpClient apiHttpClient,
044            String projectKey, String importContainerKey,
045            com.commercetools.importapi.models.importrequests.StandalonePriceImportRequest standalonePriceImportRequest) {
046        super(apiHttpClient);
047        this.projectKey = projectKey;
048        this.importContainerKey = importContainerKey;
049        this.standalonePriceImportRequest = standalonePriceImportRequest;
050    }
051
052    public ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost(
053            ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost 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            io.vrap.rmf.base.client.utils.json.JsonUtils.executing(
070                () -> apiHttpClient().getSerializerService().toJsonByteArray(standalonePriceImportRequest)));
071
072    }
073
074    @Override
075    public ApiHttpResponse<com.commercetools.importapi.models.importrequests.ImportResponse> executeBlocking(
076            final ApiHttpClient client, final Duration timeout) {
077        return executeBlocking(client, timeout, com.commercetools.importapi.models.importrequests.ImportResponse.class);
078    }
079
080    @Override
081    public CompletableFuture<ApiHttpResponse<com.commercetools.importapi.models.importrequests.ImportResponse>> execute(
082            final ApiHttpClient client) {
083        return execute(client, com.commercetools.importapi.models.importrequests.ImportResponse.class);
084    }
085
086    public String getProjectKey() {
087        return this.projectKey;
088    }
089
090    public String getImportContainerKey() {
091        return this.importContainerKey;
092    }
093
094    public void setProjectKey(final String projectKey) {
095        this.projectKey = projectKey;
096    }
097
098    public void setImportContainerKey(final String importContainerKey) {
099        this.importContainerKey = importContainerKey;
100    }
101
102    public com.commercetools.importapi.models.importrequests.StandalonePriceImportRequest getBody() {
103        return standalonePriceImportRequest;
104    }
105
106    public ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost withBody(
107            com.commercetools.importapi.models.importrequests.StandalonePriceImportRequest standalonePriceImportRequest) {
108        ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost t = copy();
109        t.standalonePriceImportRequest = standalonePriceImportRequest;
110        return t;
111    }
112
113    @Override
114    public boolean equals(Object o) {
115        if (this == o)
116            return true;
117
118        if (o == null || getClass() != o.getClass())
119            return false;
120
121        ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost that = (ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost) o;
122
123        return new EqualsBuilder().append(projectKey, that.projectKey)
124                .append(importContainerKey, that.importContainerKey)
125                .append(standalonePriceImportRequest, that.standalonePriceImportRequest)
126                .isEquals();
127    }
128
129    @Override
130    public int hashCode() {
131        return new HashCodeBuilder(17, 37).append(projectKey)
132                .append(importContainerKey)
133                .append(standalonePriceImportRequest)
134                .toHashCode();
135    }
136
137    @Override
138    protected ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost copy() {
139        return new ByProjectKeyStandalonePricesImportContainersByImportContainerKeyPost(this);
140    }
141}