Skip to content

Commit 7841c8c

Browse files
authored
Merge pull request #37 from railsware/feature/delete-sending-domain
Implemented delete for Sending Domains API
2 parents c709eb3 + eaded98 commit 7841c8c

File tree

4 files changed

+86
-19
lines changed

4 files changed

+86
-19
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package io.mailtrap.examples.sendingdomains;
2+
3+
import io.mailtrap.config.MailtrapConfig;
4+
import io.mailtrap.factory.MailtrapClientFactory;
5+
import io.mailtrap.model.request.sendingdomains.CreateSendingDomainRequest;
6+
import io.mailtrap.model.request.sendingdomains.SendingDomainsSetupInstructionsRequest;
7+
8+
import static io.mailtrap.model.request.sendingdomains.CreateSendingDomainRequest.SendingDomainData;
9+
10+
public class SendingDomains {
11+
12+
private static final String TOKEN = "<YOUR MAILTRAP TOKEN>";
13+
private static final long ACCOUNT_ID = 1L;
14+
private static final String DOMAIN_NAME = "test.io";
15+
private static final String DEVOPS_EMAIL = "[email protected]";
16+
17+
public static void main(String[] args) {
18+
final var config = new MailtrapConfig.Builder()
19+
.token(TOKEN)
20+
.build();
21+
22+
final var client = MailtrapClientFactory.createMailtrapClient(config);
23+
24+
final var createRequest = new CreateSendingDomainRequest(new SendingDomainData(DOMAIN_NAME));
25+
26+
final var createdDomain = client.sendingApi().domains().create(ACCOUNT_ID, createRequest);
27+
System.out.println(createdDomain);
28+
29+
final var domainById = client.sendingApi().domains().getSendingDomain(ACCOUNT_ID, createdDomain.getId());
30+
System.out.println(domainById);
31+
32+
final var allDomains = client.sendingApi().domains().getSendingDomains(ACCOUNT_ID);
33+
System.out.println(allDomains);
34+
35+
final var sendInstructionsRequest = new SendingDomainsSetupInstructionsRequest(DEVOPS_EMAIL);
36+
client.sendingApi().domains().sendSendingDomainsSetupInstructions(ACCOUNT_ID, createdDomain.getId(), sendInstructionsRequest);
37+
38+
client.sendingApi().domains().deleteSendingDomain(ACCOUNT_ID, createdDomain.getId());
39+
}
40+
}

src/main/java/io/mailtrap/api/sendingdomains/SendingDomains.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,12 @@ public interface SendingDomains {
4242
* @param request request data
4343
*/
4444
void sendSendingDomainsSetupInstructions(long accountId, long sendingDomainId, SendingDomainsSetupInstructionsRequest request);
45+
46+
/**
47+
* Delete a sending domain
48+
*
49+
* @param accountId unique account ID
50+
* @param sendingDomainId unique domain ID
51+
*/
52+
void deleteSendingDomain(long accountId, long sendingDomainId);
4553
}

src/main/java/io/mailtrap/api/sendingdomains/SendingDomainsImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,14 @@ public void sendSendingDomainsSetupInstructions(long accountId, long sendingDoma
5454
Void.class
5555
);
5656
}
57+
58+
@Override
59+
public void deleteSendingDomain(long accountId, long sendingDomainId) {
60+
httpClient
61+
.delete(
62+
String.format(apiHost + "/api/accounts/%d/sending_domains/%d", accountId, sendingDomainId),
63+
new RequestData(),
64+
Void.class
65+
);
66+
}
5767
}

src/test/java/io/mailtrap/api/sendingdomains/SendingDomainsImplTest.java

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,28 +23,32 @@ class SendingDomainsImplTest extends BaseTest {
2323
@BeforeEach
2424
public void init() {
2525
TestHttpClient httpClient = new TestHttpClient(List.of(
26-
DataMock.build(
27-
Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains",
28-
"POST", "api/sending_domains/createSendingDomainRequest.json", "api/sending_domains/sendingDomainResponse.json"
29-
),
30-
DataMock.build(
31-
Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains",
32-
"GET", null, "api/sending_domains/sendingDomainsResponse.json"
33-
),
34-
DataMock.build(
35-
Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains/" + sendingDomainId,
36-
"GET", null, "api/sending_domains/sendingDomainResponse.json"
37-
),
38-
DataMock.build(
39-
Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains/" + sendingDomainId + "/send_setup_instructions",
40-
"POST", "api/sending_domains/sendSetupInstructionsRequest.json", null
41-
)
26+
DataMock.build(
27+
Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains",
28+
"POST", "api/sending_domains/createSendingDomainRequest.json", "api/sending_domains/sendingDomainResponse.json"
29+
),
30+
DataMock.build(
31+
Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains",
32+
"GET", null, "api/sending_domains/sendingDomainsResponse.json"
33+
),
34+
DataMock.build(
35+
Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains/" + sendingDomainId,
36+
"GET", null, "api/sending_domains/sendingDomainResponse.json"
37+
),
38+
DataMock.build(
39+
Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains/" + sendingDomainId + "/send_setup_instructions",
40+
"POST", "api/sending_domains/sendSetupInstructionsRequest.json", null
41+
),
42+
DataMock.build(
43+
Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains/" + sendingDomainId,
44+
"DELETE", null, null
45+
)
4246
));
4347

4448
MailtrapConfig testConfig = new MailtrapConfig.Builder()
45-
.httpClient(httpClient)
46-
.token("dummy_token")
47-
.build();
49+
.httpClient(httpClient)
50+
.token("dummy_token")
51+
.build();
4852

4953
domains = MailtrapClientFactory.createMailtrapClient(testConfig).sendingApi().domains();
5054
}
@@ -82,4 +86,9 @@ void test_getSendingDomain() {
8286
void test_sendSendingDomainsSetupInstructions() {
8387
domains.sendSendingDomainsSetupInstructions(accountId, sendingDomainId, new SendingDomainsSetupInstructionsRequest("[email protected]"));
8488
}
89+
90+
@Test
91+
void test_deleteSendingDomain() {
92+
assertDoesNotThrow(() -> domains.deleteSendingDomain(accountId, sendingDomainId));
93+
}
8594
}

0 commit comments

Comments
 (0)