diff --git a/src/main/java/com/smartling/connector/hubspot/sdk/HubspotEmailsClient.java b/src/main/java/com/smartling/connector/hubspot/sdk/HubspotEmailsClient.java index b280147..ce92341 100644 --- a/src/main/java/com/smartling/connector/hubspot/sdk/HubspotEmailsClient.java +++ b/src/main/java/com/smartling/connector/hubspot/sdk/HubspotEmailsClient.java @@ -16,8 +16,12 @@ public interface HubspotEmailsClient extends HubspotClient String updateContent(@NonNull String emailId, @NonNull String emailContent) throws HubspotApiException; + String create(@NonNull String emailContent) throws HubspotApiException; + EmailDetail clone(@NonNull String emailId, @NonNull String name) throws HubspotApiException; + String rawClone(@NonNull String emailId, @NonNull String name) throws HubspotApiException; + EmailDetail createVariation(@NonNull String emailId, @NonNull String variationName) throws HubspotApiException; EmailDetail getBufferedDetail(@NonNull String emailId) throws HubspotApiException; diff --git a/src/main/java/com/smartling/connector/hubspot/sdk/email/EmailDetail.java b/src/main/java/com/smartling/connector/hubspot/sdk/email/EmailDetail.java index 9ca88a5..2e7fe0c 100644 --- a/src/main/java/com/smartling/connector/hubspot/sdk/email/EmailDetail.java +++ b/src/main/java/com/smartling/connector/hubspot/sdk/email/EmailDetail.java @@ -3,10 +3,12 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; @EqualsAndHashCode(callSuper=true) @Data @NoArgsConstructor +@SuperBuilder public class EmailDetail extends EmailDetailShort { public static final String FIELDS = EmailDetailShort.FIELDS + diff --git a/src/main/java/com/smartling/connector/hubspot/sdk/email/EmailDetailShort.java b/src/main/java/com/smartling/connector/hubspot/sdk/email/EmailDetailShort.java index 9587370..7b54c53 100644 --- a/src/main/java/com/smartling/connector/hubspot/sdk/email/EmailDetailShort.java +++ b/src/main/java/com/smartling/connector/hubspot/sdk/email/EmailDetailShort.java @@ -2,11 +2,13 @@ import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; import java.util.Date; @Data @NoArgsConstructor +@SuperBuilder public class EmailDetailShort { public static final String FIELDS = "emailType,id,name,updated"; diff --git a/src/main/java/com/smartling/connector/hubspot/sdk/rest/HubspotRestEmailsClient.java b/src/main/java/com/smartling/connector/hubspot/sdk/rest/HubspotRestEmailsClient.java index 8368b32..db56c00 100644 --- a/src/main/java/com/smartling/connector/hubspot/sdk/rest/HubspotRestEmailsClient.java +++ b/src/main/java/com/smartling/connector/hubspot/sdk/rest/HubspotRestEmailsClient.java @@ -68,12 +68,22 @@ public String updateContent(@NonNull String emailId, @NonNull String emailConten return execute(() -> emailsRawApi.update(emailId, emailContent)); } + @Override + public String create(@NonNull String emailContent) throws HubspotApiException { + return execute(() -> emailsRawApi.create(emailContent)); + } + @Override public EmailDetail clone(@NonNull String emailId, @NonNull String name) throws HubspotApiException { return execute(() -> emailsEntityApi.clone(emailId, new CloneEmailRequest(name))); } + @Override + public String rawClone(@NonNull String emailId, @NonNull String name) throws HubspotApiException { + return execute(() -> emailsRawApi.clone(emailId, new CloneEmailRequest(name))); + } + @Override public EmailDetail createVariation(@NonNull String emailId, @NonNull String variationName) throws HubspotApiException { diff --git a/src/main/java/com/smartling/connector/hubspot/sdk/rest/api/EmailsRawApi.java b/src/main/java/com/smartling/connector/hubspot/sdk/rest/api/EmailsRawApi.java index 31f7772..893425c 100644 --- a/src/main/java/com/smartling/connector/hubspot/sdk/rest/api/EmailsRawApi.java +++ b/src/main/java/com/smartling/connector/hubspot/sdk/rest/api/EmailsRawApi.java @@ -1,5 +1,6 @@ package com.smartling.connector.hubspot.sdk.rest.api; +import com.smartling.connector.hubspot.sdk.email.CloneEmailRequest; import feign.Headers; import feign.Param; import feign.RequestLine; @@ -12,4 +13,12 @@ public interface EmailsRawApi @RequestLine("PUT /marketing-emails/v1/emails/{email_id}") @Headers("Content-Type: application/json") String update(@Param("email_id") String emailId, String emailAsJson); + + @RequestLine("POST /marketing-emails/v1/emails/") + @Headers("Content-Type: application/json") + String create(String emailAsJson); + + @RequestLine("POST /marketing-emails/v1/emails/{email_id}/clone") + @Headers("Content-Type: application/json") + String clone(@Param("email_id") String email_id, CloneEmailRequest cloneFormRequest); }