001 002package com.commercetools.api.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>Create an Order by Import</p> 018 * 019 * <hr> 020 * <div class=code-example> 021 * <pre><code class='java'>{@code 022 * CompletableFuture<ApiHttpResponse<com.commercetools.api.models.order.Order>> result = apiRoot 023 * .withProjectKey("{projectKey}") 024 * .orders() 025 * .importOrder() 026 * .post(null) 027 * .execute() 028 * }</code></pre> 029 * </div> 030 */ 031@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 032public class ByProjectKeyOrdersImportPost extends 033 BodyApiMethod<ByProjectKeyOrdersImportPost, com.commercetools.api.models.order.Order, com.commercetools.api.models.order.OrderImportDraft> 034 implements com.commercetools.api.client.ErrorableTrait<ByProjectKeyOrdersImportPost> { 035 036 private String projectKey; 037 038 private com.commercetools.api.models.order.OrderImportDraft orderImportDraft; 039 040 public ByProjectKeyOrdersImportPost(final ApiHttpClient apiHttpClient, String projectKey, 041 com.commercetools.api.models.order.OrderImportDraft orderImportDraft) { 042 super(apiHttpClient); 043 this.projectKey = projectKey; 044 this.orderImportDraft = orderImportDraft; 045 } 046 047 public ByProjectKeyOrdersImportPost(ByProjectKeyOrdersImportPost t) { 048 super(t); 049 this.projectKey = t.projectKey; 050 this.orderImportDraft = t.orderImportDraft; 051 } 052 053 @Override 054 protected ApiHttpRequest buildHttpRequest() { 055 List<String> params = new ArrayList<>(getQueryParamUriStrings()); 056 String httpRequestPath = String.format("%s/orders/import", this.projectKey); 057 if (!params.isEmpty()) { 058 httpRequestPath += "?" + String.join("&", params); 059 } 060 return new ApiHttpRequest(ApiHttpMethod.POST, URI.create(httpRequestPath), getHeaders(), 061 io.vrap.rmf.base.client.utils.json.JsonUtils 062 .executing(() -> apiHttpClient().getSerializerService().toJsonByteArray(orderImportDraft))); 063 064 } 065 066 @Override 067 public ApiHttpResponse<com.commercetools.api.models.order.Order> executeBlocking(final ApiHttpClient client, 068 final Duration timeout) { 069 return executeBlocking(client, timeout, com.commercetools.api.models.order.Order.class); 070 } 071 072 @Override 073 public CompletableFuture<ApiHttpResponse<com.commercetools.api.models.order.Order>> execute( 074 final ApiHttpClient client) { 075 return execute(client, com.commercetools.api.models.order.Order.class); 076 } 077 078 public String getProjectKey() { 079 return this.projectKey; 080 } 081 082 public void setProjectKey(final String projectKey) { 083 this.projectKey = projectKey; 084 } 085 086 public com.commercetools.api.models.order.OrderImportDraft getBody() { 087 return orderImportDraft; 088 } 089 090 public ByProjectKeyOrdersImportPost withBody(com.commercetools.api.models.order.OrderImportDraft orderImportDraft) { 091 ByProjectKeyOrdersImportPost t = copy(); 092 t.orderImportDraft = orderImportDraft; 093 return t; 094 } 095 096 @Override 097 public boolean equals(Object o) { 098 if (this == o) 099 return true; 100 101 if (o == null || getClass() != o.getClass()) 102 return false; 103 104 ByProjectKeyOrdersImportPost that = (ByProjectKeyOrdersImportPost) o; 105 106 return new EqualsBuilder().append(projectKey, that.projectKey) 107 .append(orderImportDraft, that.orderImportDraft) 108 .isEquals(); 109 } 110 111 @Override 112 public int hashCode() { 113 return new HashCodeBuilder(17, 37).append(projectKey).append(orderImportDraft).toHashCode(); 114 } 115 116 @Override 117 protected ByProjectKeyOrdersImportPost copy() { 118 return new ByProjectKeyOrdersImportPost(this); 119 } 120}