From 61ae2dd79c1caf6a6bc81a4fe416eacdfc7f38f1 Mon Sep 17 00:00:00 2001 From: vtasun Date: Mon, 8 Sep 2025 01:00:23 +0300 Subject: [PATCH 1/2] Implemented delete for Sending Domains API --- .../sendingdomains/SendingDomains.java | 40 ++++++++++++++++ .../api/sendingdomains/SendingDomains.java | 8 ++++ .../sendingdomains/SendingDomainsImpl.java | 10 ++++ .../SendingDomainsImplTest.java | 47 +++++++++++-------- 4 files changed, 86 insertions(+), 19 deletions(-) create mode 100644 examples/java/io/mailtrap/examples/sendingdomains/SendingDomains.java diff --git a/examples/java/io/mailtrap/examples/sendingdomains/SendingDomains.java b/examples/java/io/mailtrap/examples/sendingdomains/SendingDomains.java new file mode 100644 index 0000000..3f2b5df --- /dev/null +++ b/examples/java/io/mailtrap/examples/sendingdomains/SendingDomains.java @@ -0,0 +1,40 @@ +package io.mailtrap.examples.sendingdomains; + +import io.mailtrap.config.MailtrapConfig; +import io.mailtrap.factory.MailtrapClientFactory; +import io.mailtrap.model.request.sendingdomains.CreateSendingDomainRequest; +import io.mailtrap.model.request.sendingdomains.SendingDomainsSetupInstructionsRequest; + +import static io.mailtrap.model.request.sendingdomains.CreateSendingDomainRequest.SendingDomainData; + +public class SendingDomains { + + private static final String TOKEN = ""; + private static final long ACCOUNT_ID = 1L; + private static final String DOMAIN_NAME = "test.io"; + private static final String DEVOPS_EMAIL = "devops@test.io"; + + public static void main(String[] args) { + final var config = new MailtrapConfig.Builder() + .token(TOKEN) + .build(); + + final var client = MailtrapClientFactory.createMailtrapClient(config); + + final var createRequest = new CreateSendingDomainRequest(new SendingDomainData(DOMAIN_NAME)); + + final var createdDomain = client.sendingApi().domains().create(ACCOUNT_ID, createRequest); + System.out.println(createdDomain); + + final var domainById = client.sendingApi().domains().getSendingDomain(ACCOUNT_ID, createdDomain.getId()); + System.out.println(domainById); + + final var allDomains = client.sendingApi().domains().getSendingDomains(ACCOUNT_ID); + System.out.println(allDomains); + + final var sendInstructionsRequest = new SendingDomainsSetupInstructionsRequest(DEVOPS_EMAIL); + client.sendingApi().domains().sendSendingDomainsSetupInstructions(ACCOUNT_ID, createdDomain.getId(), sendInstructionsRequest); + + client.sendingApi().domains().deleteSendingDomain(ACCOUNT_ID, createdDomain.getId()); + } +} \ No newline at end of file diff --git a/src/main/java/io/mailtrap/api/sendingdomains/SendingDomains.java b/src/main/java/io/mailtrap/api/sendingdomains/SendingDomains.java index 945a5b0..b21a395 100644 --- a/src/main/java/io/mailtrap/api/sendingdomains/SendingDomains.java +++ b/src/main/java/io/mailtrap/api/sendingdomains/SendingDomains.java @@ -42,4 +42,12 @@ public interface SendingDomains { * @param request request data */ void sendSendingDomainsSetupInstructions(long accountId, long sendingDomainId, SendingDomainsSetupInstructionsRequest request); + + /** + * Delete a sending domain + * + * @param accountId unique account ID + * @param sendingDomainId unique domain ID + */ + void deleteSendingDomain(long accountId, long sendingDomainId); } diff --git a/src/main/java/io/mailtrap/api/sendingdomains/SendingDomainsImpl.java b/src/main/java/io/mailtrap/api/sendingdomains/SendingDomainsImpl.java index 6446a8b..c7f9614 100644 --- a/src/main/java/io/mailtrap/api/sendingdomains/SendingDomainsImpl.java +++ b/src/main/java/io/mailtrap/api/sendingdomains/SendingDomainsImpl.java @@ -54,4 +54,14 @@ public void sendSendingDomainsSetupInstructions(long accountId, long sendingDoma Void.class ); } + + @Override + public void deleteSendingDomain(long accountId, long sendingDomainId) { + httpClient + .delete( + String.format(apiHost + "/api/accounts/%d/sending_domains/%d", accountId, sendingDomainId), + new RequestData(), + Void.class + ); + } } diff --git a/src/test/java/io/mailtrap/api/sendingdomains/SendingDomainsImplTest.java b/src/test/java/io/mailtrap/api/sendingdomains/SendingDomainsImplTest.java index 1259a9e..29e9fc9 100644 --- a/src/test/java/io/mailtrap/api/sendingdomains/SendingDomainsImplTest.java +++ b/src/test/java/io/mailtrap/api/sendingdomains/SendingDomainsImplTest.java @@ -23,28 +23,32 @@ class SendingDomainsImplTest extends BaseTest { @BeforeEach public void init() { TestHttpClient httpClient = new TestHttpClient(List.of( - DataMock.build( - Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains", - "POST", "api/sending_domains/createSendingDomainRequest.json", "api/sending_domains/sendingDomainResponse.json" - ), - DataMock.build( - Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains", - "GET", null, "api/sending_domains/sendingDomainsResponse.json" - ), - DataMock.build( - Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains/" + sendingDomainId, - "GET", null, "api/sending_domains/sendingDomainResponse.json" - ), - DataMock.build( - Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains/" + sendingDomainId + "/send_setup_instructions", - "POST", "api/sending_domains/sendSetupInstructionsRequest.json", null - ) + DataMock.build( + Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains", + "POST", "api/sending_domains/createSendingDomainRequest.json", "api/sending_domains/sendingDomainResponse.json" + ), + DataMock.build( + Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains", + "GET", null, "api/sending_domains/sendingDomainsResponse.json" + ), + DataMock.build( + Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains/" + sendingDomainId, + "GET", null, "api/sending_domains/sendingDomainResponse.json" + ), + DataMock.build( + Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains/" + sendingDomainId + "/send_setup_instructions", + "POST", "api/sending_domains/sendSetupInstructionsRequest.json", null + ), + DataMock.build( + Constants.GENERAL_HOST + "/api/accounts/" + accountId + "/sending_domains/" + sendingDomainId, + "DELETE", null, null + ) )); MailtrapConfig testConfig = new MailtrapConfig.Builder() - .httpClient(httpClient) - .token("dummy_token") - .build(); + .httpClient(httpClient) + .token("dummy_token") + .build(); domains = MailtrapClientFactory.createMailtrapClient(testConfig).sendingApi().domains(); } @@ -82,4 +86,9 @@ void test_getSendingDomain() { void test_sendSendingDomainsSetupInstructions() { domains.sendSendingDomainsSetupInstructions(accountId, sendingDomainId, new SendingDomainsSetupInstructionsRequest("devops@test.io")); } + + @Test + void test_deleteSendingDomain() { + assertDoesNotThrow(() -> domains.deleteSendingDomain(accountId, sendingDomainId)); + } } From eaded9894b275c98ac7c50fd8d2545af9b7bef43 Mon Sep 17 00:00:00 2001 From: vtasun Date: Mon, 8 Sep 2025 23:25:20 +0300 Subject: [PATCH 2/2] Add an empty line in SendingDomains example --- .../io/mailtrap/examples/sendingdomains/SendingDomains.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/java/io/mailtrap/examples/sendingdomains/SendingDomains.java b/examples/java/io/mailtrap/examples/sendingdomains/SendingDomains.java index 3f2b5df..1ded617 100644 --- a/examples/java/io/mailtrap/examples/sendingdomains/SendingDomains.java +++ b/examples/java/io/mailtrap/examples/sendingdomains/SendingDomains.java @@ -37,4 +37,4 @@ public static void main(String[] args) { client.sendingApi().domains().deleteSendingDomain(ACCOUNT_ID, createdDomain.getId()); } -} \ No newline at end of file +}