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
Original file line number Diff line number Diff line change
@@ -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 = "<YOUR MAILTRAP 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());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand Down Expand Up @@ -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));
}
}