Skip to content

Commit 9cd7f67

Browse files
authored
Merge pull request #21 from railsware/feature/improvements
SDK improvements
2 parents 8926cd9 + 3e77323 commit 9cd7f67

File tree

16 files changed

+203
-5
lines changed

16 files changed

+203
-5
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public class MailtrapJavaSDKTest {
5555
private static final String TOKEN = "<YOUR MAILTRAP TOKEN>";
5656
private static final String SENDER_EMAIL = "[email protected]";
5757
private static final String RECIPIENT_EMAIL = "[email protected]";
58+
private static final String REPLY_TO_EMAIL = "[email protected]";
5859

5960
public static void main(String[] args) {
6061
final MailtrapConfig config = new MailtrapConfig.Builder()
@@ -66,6 +67,7 @@ public class MailtrapJavaSDKTest {
6667
final MailtrapMail mail = MailtrapMail.builder()
6768
.from(new Address(SENDER_EMAIL))
6869
.to(List.of(new Address(RECIPIENT_EMAIL)))
70+
.replyTo(new Address(REPLY_TO_EMAIL, "Vincent Vega"))
6971
.subject("Hello from Mailtrap Sending!")
7072
.text("Welcome to Mailtrap Sending!")
7173
.build();

examples/java/io/mailtrap/examples/sending/Everything.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class Everything {
1717
private static final String TOKEN = "<YOUR MAILTRAP TOKEN>";
1818
private static final String SENDER_EMAIL = "[email protected]";
1919
private static final String RECIPIENT_EMAIL = "[email protected]";
20+
private static final String REPLY_TO_EMAIL = "[email protected]";
2021

2122
public static void main(String[] args) {
2223
final MailtrapConfig config = new MailtrapConfig.Builder()
@@ -36,6 +37,7 @@ public static void main(String[] args) {
3637
))
3738
.from(new Address(SENDER_EMAIL))
3839
.to(List.of(new Address(RECIPIENT_EMAIL)))
40+
.replyTo(new Address(REPLY_TO_EMAIL, "Reply To"))
3941
.subject("Hello from Mailtrap!")
4042
.html("""
4143
<!doctype html>

src/main/java/io/mailtrap/model/AccessLevel.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public enum AccessLevel {
88

99
OWNER(1000, "owner"),
1010
ADMIN(100, "admin"),
11+
VIEWER_PLUS(50, "viewer+"),
1112
VIEWER(10, "viewer"),
1213
INDETERMINATE(1, "indeterminate");
1314

src/main/java/io/mailtrap/model/ResourceType.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ public enum ResourceType {
88
BILLING("billing"),
99
PROJECT("project"),
1010
INBOX("inbox"),
11-
MAILSEND_DOMAIN("mailsend_domain"),
12-
//TODO clarify name and rename enum value
11+
SENDING_DOMAIN("sending_domain"),
1312
EMAIL_CAMPAIGN_PERMISSION_SCOPE("email_campaign_permission_scope");
1413

1514
private final String value;

src/main/java/io/mailtrap/model/request/emails/MailtrapMail.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ public class MailtrapMail extends AbstractModel {
3131

3232
private List<Address> bcc;
3333

34+
@JsonProperty("reply_to")
35+
private Address replyTo;
36+
3437
@Valid
3538
private List<EmailAttachment> attachments;
3639

src/main/java/io/mailtrap/model/response/account_accesses/UserSpecifier.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.mailtrap.model.response.account_accesses;
22

3+
import com.fasterxml.jackson.annotation.JsonProperty;
34
import lombok.Data;
45
import lombok.EqualsAndHashCode;
56

@@ -11,4 +12,6 @@ public class UserSpecifier extends Specifier {
1112

1213
private String name;
1314

15+
@JsonProperty("two_factor_authentication_enabled")
16+
private boolean twoFactorAuthenticationEnabled;
1417
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package io.mailtrap.model.response.messages;
2+
3+
import com.fasterxml.jackson.annotation.JsonCreator;
4+
import com.fasterxml.jackson.annotation.JsonValue;
5+
6+
public enum BlacklistReportInfoResult {
7+
SUCCESS("success"),
8+
PENDING("pending"),
9+
ERROR("error");
10+
11+
private final String value;
12+
13+
BlacklistReportInfoResult(String value) {
14+
this.value = value;
15+
}
16+
17+
@JsonValue
18+
public String getValue() {
19+
return value;
20+
}
21+
22+
@JsonCreator
23+
public static BlacklistReportInfoResult fromValue(Object value) {
24+
for (BlacklistReportInfoResult level : BlacklistReportInfoResult.values()) {
25+
if (level.value.equalsIgnoreCase((String) value)) {
26+
return level;
27+
}
28+
}
29+
throw new IllegalArgumentException("Unknown value: " + value);
30+
}
31+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package io.mailtrap.model.response.messages;
2+
3+
import lombok.Data;
4+
5+
import java.util.List;
6+
7+
@Data
8+
public class BlacklistsReportInfo {
9+
10+
private BlacklistReportInfoResult result;
11+
12+
private String domain;
13+
14+
private String ip;
15+
16+
private List<Report> report;
17+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package io.mailtrap.model.response.messages;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public class BlacklistsReportInfoWrapper {
7+
private Boolean booleanValue;
8+
private BlacklistsReportInfo objectValue;
9+
10+
public BlacklistsReportInfoWrapper(Boolean booleanValue) {
11+
this.booleanValue = booleanValue;
12+
}
13+
14+
public BlacklistsReportInfoWrapper(BlacklistsReportInfo objectValue) {
15+
this.objectValue = objectValue;
16+
}
17+
18+
public boolean isBoolean() {
19+
return booleanValue != null;
20+
}
21+
22+
}

src/main/java/io/mailtrap/model/response/messages/MessageResponse.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.mailtrap.model.response.messages;
22

33
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
5+
import io.mailtrap.serialization.BlacklistsReportInfoDeserializer;
46
import lombok.Data;
57

68
import java.time.OffsetDateTime;
@@ -69,7 +71,8 @@ public class MessageResponse {
6971
private String htmlSourcePath;
7072

7173
@JsonProperty("blacklists_report_info")
72-
private boolean blacklistsReportInfo;
74+
@JsonDeserialize(using = BlacklistsReportInfoDeserializer.class)
75+
private BlacklistsReportInfoWrapper blacklistsReportInfoWrapper;
7376

7477
@JsonProperty("smtp_information")
7578
private SmtpInformation smtpInformation;

0 commit comments

Comments
 (0)