Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/main/java/co/lettermint/endpoints/EmailEndpoint.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
private String route;
private Map<String, Object> metadata;
private String tag;
private List<Map<String, String>> tags;
private Map<String, Object> settings;
private String idempotencyKey;

Expand All @@ -52,6 +53,7 @@
this.route = null;
this.metadata = new LinkedHashMap<>();
this.tag = null;
this.tags = new ArrayList<>();
this.settings = null;
this.idempotencyKey = null;
}
Expand All @@ -60,7 +62,7 @@
* Set the sender email address.
* Format: {@code "Name <email>"} or just {@code "email"}
*/
public EmailEndpoint from(String from) {

Check warning on line 65 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 11 - ubuntu-latest)

Check warning on line 65 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 11 - ubuntu-latest)

no @PARAM for from

Check warning on line 65 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 8 - ubuntu-latest)

Check warning on line 65 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 8 - ubuntu-latest)

no @PARAM for from
this.from = from;
return this;
}
Expand All @@ -68,7 +70,7 @@
/**
* Set recipient email addresses. Replaces any existing recipients.
*/
public EmailEndpoint to(String... emails) {

Check warning on line 73 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 11 - ubuntu-latest)

Check warning on line 73 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 11 - ubuntu-latest)

no @PARAM for emails

Check warning on line 73 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 8 - ubuntu-latest)

Check warning on line 73 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 8 - ubuntu-latest)

no @PARAM for emails
this.to = new ArrayList<>(Arrays.asList(emails));
return this;
}
Expand All @@ -76,7 +78,7 @@
/**
* Set CC email addresses. Replaces any existing CC recipients.
*/
public EmailEndpoint cc(String... emails) {

Check warning on line 81 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 11 - ubuntu-latest)

Check warning on line 81 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 11 - ubuntu-latest)

no @PARAM for emails

Check warning on line 81 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 8 - ubuntu-latest)

Check warning on line 81 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 8 - ubuntu-latest)

no @PARAM for emails
this.cc = new ArrayList<>(Arrays.asList(emails));
return this;
}
Expand All @@ -84,7 +86,7 @@
/**
* Set BCC email addresses. Replaces any existing BCC recipients.
*/
public EmailEndpoint bcc(String... emails) {

Check warning on line 89 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 11 - ubuntu-latest)

Check warning on line 89 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 11 - ubuntu-latest)

no @PARAM for emails

Check warning on line 89 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 8 - ubuntu-latest)

Check warning on line 89 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 8 - ubuntu-latest)

no @PARAM for emails
this.bcc = new ArrayList<>(Arrays.asList(emails));
return this;
}
Expand All @@ -92,7 +94,7 @@
/**
* Set reply-to email addresses. Replaces any existing reply-to addresses.
*/
public EmailEndpoint replyTo(String... emails) {

Check warning on line 97 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 11 - ubuntu-latest)

Check warning on line 97 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 11 - ubuntu-latest)

no @PARAM for emails

Check warning on line 97 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 8 - ubuntu-latest)

Check warning on line 97 in src/main/java/co/lettermint/endpoints/EmailEndpoint.java

View workflow job for this annotation

GitHub Actions / Test (Java 8 - ubuntu-latest)

no @PARAM for emails
this.replyTo = new ArrayList<>(Arrays.asList(emails));
return this;
}
Expand Down Expand Up @@ -205,6 +207,15 @@
return this;
}

/**
* Set reusable name-value tags for the email.
*/
@SafeVarargs
public final EmailEndpoint tags(Map<String, String>... tags) {
this.tags = new ArrayList<>(Arrays.asList(tags));
return this;
}

/**
* Set per-email settings that override the selected route.
*/
Expand Down Expand Up @@ -313,6 +324,10 @@
payload.put("tag", tag);
}

if (!tags.isEmpty()) {
payload.put("tags", tags);
}

if (settings != null) {
payload.put("settings", settings);
}
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/co/lettermint/models/api/MessageData.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ public class MessageData {
@JsonProperty("tag")
public String tag;

@JsonProperty("tags")
public List<Map<String, Object>> tags;

@JsonProperty("from_email")
public String fromEmail;

Expand Down
7 changes: 7 additions & 0 deletions src/main/java/co/lettermint/models/api/MessageEventData.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.util.Map;

@JsonIgnoreProperties(ignoreUnknown = true)
Expand All @@ -12,6 +13,12 @@ public class MessageEventData {
@JsonProperty("event")
public String event;

@JsonProperty("tag")
public String tag;

@JsonProperty("tags")
public List<Map<String, Object>> tags;

@JsonProperty("metadata")
public Map<String, Object> metadata;

Expand Down
21 changes: 5 additions & 16 deletions src/main/java/co/lettermint/models/api/MessageEventsResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,16 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.util.Map;

@JsonIgnoreProperties(ignoreUnknown = true)
public class MessageEventsResponse {
@JsonProperty("data")
public List<MessageEventData> data;

@JsonProperty("path")
public String path;
@JsonProperty("links")
public List<String> links;

@JsonProperty("per_page")
public Integer perPage;

@JsonProperty("next_cursor")
public String nextCursor;

@JsonProperty("next_page_url")
public String nextPageUrl;

@JsonProperty("prev_cursor")
public String prevCursor;

@JsonProperty("prev_page_url")
public String prevPageUrl;
@JsonProperty("meta")
public Map<String, Object> meta;
}
4 changes: 4 additions & 0 deletions src/main/java/co/lettermint/models/api/MessageListData.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.util.Map;

@JsonIgnoreProperties(ignoreUnknown = true)
public class MessageListData {
Expand Down Expand Up @@ -42,6 +43,9 @@ public class MessageListData {
@JsonProperty("tag")
public String tag;

@JsonProperty("tags")
public List<Map<String, Object>> tags;

@JsonProperty("status_changed_at")
public String statusChangedAt;

Expand Down
3 changes: 3 additions & 0 deletions src/main/java/co/lettermint/models/api/SendMailRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ public class SendMailRequest {
@JsonProperty("tag")
public String tag;

@JsonProperty("tags")
public List<Map<String, Object>> tags;

@JsonProperty("settings")
public Map<String, Object> settings;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ public class UpdateRouteSettingsData {
@JsonProperty("suppress_auto_responders")
public Boolean suppressAutoResponders;

@JsonProperty("suppress_disposable_recipients")
public Boolean suppressDisposableRecipients;

@JsonProperty("tls")
public String tls;

Expand Down
6 changes: 6 additions & 0 deletions src/test/java/co/lettermint/EmailEndpointTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ void testEmailWithAllOptions() throws Exception {
metadata.put("userId", "user_123");
metadata.put("campaign", "welcome");

Map<String, String> tags = new HashMap<>();
tags.put("name", "campaign");
tags.put("value", "welcome-v2");

Map<String, Object> settings = new HashMap<>();
settings.put("track_opens", false);
settings.put("track_clicks", true);
Expand All @@ -91,6 +95,7 @@ void testEmailWithAllOptions() throws Exception {
.route("route-slug-123")
.metadata(metadata)
.tag("welcome")
.tags(tags)
.settings(settings)
.idempotencyKey("unique-key-123")
.send();
Expand All @@ -111,6 +116,7 @@ void testEmailWithAllOptions() throws Exception {
assertTrue(body.contains("\"text\":\"Hello World\""));
assertTrue(body.contains("\"route\":\"route-slug-123\""));
assertTrue(body.contains("\"tag\":\"welcome\""));
assertTrue(body.contains("\"tags\""));
assertTrue(body.contains("\"settings\":"));
assertTrue(body.contains("\"track_opens\":false"));
assertTrue(body.contains("\"track_clicks\":true"));
Expand Down
Loading