diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-12-14 13:00:00 +0100 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-12-17 12:04:59 +0100 |
commit | 224f4138b76ebb4865378b31aa16e08f9e7e707e (patch) | |
tree | c407c6493f3584639f26a179527b571dc3f1356a | |
parent | 3ffc820c7abed8e7f0321623298f5b2d08cde09a (diff) |
Add API
3 files changed, 76 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Mail.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Mail.java new file mode 100644 index 00000000000..a5944c0c448 --- /dev/null +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Mail.java @@ -0,0 +1,27 @@ +package com.yahoo.vespa.hosted.controller.api.integration.organization; + +import com.google.common.collect.ImmutableList; + +import java.util.List; +import java.util.Objects; + +/** + * A message with a sender and a set of recipients. + * + * @author jonmv + */ +public class Mail { + + private final List<String> recipients; + private final String message; + + public Mail(List<String> recipients, String message) { + recipients.forEach(Objects::requireNonNull); + this.recipients = ImmutableList.copyOf(recipients); + this.message = Objects.requireNonNull(message); + } + + public List<String> recipients() { return recipients; } + public String message() { return message; } + +} diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Mailer.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Mailer.java new file mode 100644 index 00000000000..a915f22c20c --- /dev/null +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/Mailer.java @@ -0,0 +1,19 @@ +package com.yahoo.vespa.hosted.controller.api.integration.organization; + +/** + * Allows sending e-mail from a particular user@domain. + * + * @author jonmv + */ +public interface Mailer { + + /** Sends the given mail as the configured user@domain. */ + void send(Mail mail); + + /** Returns the user this is configured to use. */ + String user(); + + /** Returns the domain this is configured to use. */ + String domain(); + +} diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/MockMailer.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/MockMailer.java new file mode 100644 index 00000000000..9373d97a11c --- /dev/null +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/organization/MockMailer.java @@ -0,0 +1,30 @@ +package com.yahoo.vespa.hosted.controller.api.integration.organization; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MockMailer implements Mailer { + + public final Map<String, List<Mail>> mails = new HashMap<>(); + + @Override + public void send(Mail mail) { + for (String recipient : mail.recipients()) { + mails.putIfAbsent(recipient, new ArrayList<>()); + mails.get(recipient).add(mail); + } + } + + @Override + public String user() { + return "user"; + } + + @Override + public String domain() { + return "domain"; + } + +} |