2 Commits

3 geänderte Dateien mit 24 neuen und 13 gelöschten Zeilen
  1. +12
    -7
      bubble-server/src/main/java/bubble/cloud/email/SendgridSmtpEmailDriver.java
  2. +9
    -6
      bubble-server/src/main/java/bubble/cloud/email/SmtpEmailDriver.java
  3. +3
    -0
      bubble-server/src/main/java/bubble/cloud/email/mock/MockEmailDriver.java

+ 12
- 7
bubble-server/src/main/java/bubble/cloud/email/SendgridSmtpEmailDriver.java Datei anzeigen

@@ -10,7 +10,6 @@ import lombok.*;
import org.cobbzilla.util.http.HttpMethods;
import org.cobbzilla.util.http.HttpRequestBean;
import org.cobbzilla.util.http.HttpResponseBean;
import org.springframework.beans.factory.annotation.Autowired;

import javax.annotation.Nullable;
import java.io.IOException;
@@ -31,10 +30,9 @@ public class SendgridSmtpEmailDriver extends SmtpEmailDriver {

private static final String PARAM_PARENT_SERVICE = "parentService";

@Autowired private AccountDAO accountDAO;
@Autowired private CloudServiceDAO serviceDAO;

@Override protected boolean isServiceCompatible() { return this.config.getHost().equals(SENDGRID_SMTP); }
@Override protected boolean isServiceCompatible(final String serviceHost) {
return SENDGRID_SMTP.equals(serviceHost);
}

/**
* Build username which will be used for Subuser created on SendGrid's service for specified Account's object.
@@ -51,7 +49,8 @@ public class SendgridSmtpEmailDriver extends SmtpEmailDriver {
return super.setupDelegatedCloudService(configuration, parentService, delegatedService);
}

final Account accountWithDelegate = accountDAO.findByUuid(delegatedService.getAccount());
final Account accountWithDelegate = configuration.getBean(AccountDAO.class)
.findByUuid(delegatedService.getAccount());
final String user = sgUsername(delegatedService);
String password = generatePassword(MIN_KEY_LENGTH, MIN_DISTINCT_LENGTH);
final CreateSubuserRequest data = new CreateSubuserRequest(user, accountWithDelegate.getEmail(), password,
@@ -68,10 +67,16 @@ public class SendgridSmtpEmailDriver extends SmtpEmailDriver {
}

@Override public void postServiceDelete(@NonNull final CloudService service) {
// TODO: there must be configuration present here. If this happens, try some other way:
if (getConfiguration() == null) {
die("postServiceDelete: Cannot do this action with server configuration set within");
}

final String parentServiceUuid = service.getCredentials().getParam(PARAM_PARENT_SERVICE);
if (parentServiceUuid == null) return;

final CloudService parentService = serviceDAO.findByUuid(parentServiceUuid);
final CloudService parentService = getConfiguration().getBean(CloudServiceDAO.class)
.findByUuid(parentServiceUuid);
if (parentService == null) return;

final String sgUserToDelete = sgUsername(service);


+ 9
- 6
bubble-server/src/main/java/bubble/cloud/email/SmtpEmailDriver.java Datei anzeigen

@@ -10,9 +10,8 @@ import bubble.cloud.email.mock.MockMailSender;
import bubble.model.account.Account;
import bubble.model.account.AccountContact;
import bubble.model.account.message.AccountMessage;
import bubble.model.cloud.CloudService;
import bubble.model.cloud.CloudCredentials;
import bubble.server.BubbleConfiguration;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.cobbzilla.mail.sender.SmtpMailSender;
@@ -49,12 +48,16 @@ public class SmtpEmailDriver extends CloudServiceDriverBase<EmailDriverConfig> i
return smtpSender;
}

@Override public void setConfig(JsonNode json, CloudService cloudService) {
super.setConfig(json, cloudService);
if (!isServiceCompatible()) die("Specified SmtpEmailDriver is not compatible with given config");
@Override public void setCredentials(CloudCredentials credentials) {
super.setCredentials(credentials);
if (credentials != null && !isServiceCompatible(credentials.getParam(PARAM_HOST))) {
die("Specified Smtp Email Driver is not compatible with given config: " + this.getClass().getSimpleName());
}
}

protected boolean isServiceCompatible() { return !SEPARATE_DRIVERS_SMTPS.contains(this.config.getHost()); }
protected boolean isServiceCompatible(final String serviceHost) {
return !SEPARATE_DRIVERS_SMTPS.contains(serviceHost);
}

@Override public boolean send(Account account, AccountMessage message, AccountContact contact) {
return EmailServiceDriver.send(this, account, message, contact);


+ 3
- 0
bubble-server/src/main/java/bubble/cloud/email/mock/MockEmailDriver.java Datei anzeigen

@@ -7,10 +7,13 @@ package bubble.cloud.email.mock;
import bubble.cloud.email.SmtpEmailDriver;
import org.cobbzilla.mail.sender.SmtpMailSender;

import static org.cobbzilla.util.daemon.ZillaRuntime.empty;

public class MockEmailDriver extends SmtpEmailDriver {

private static final MockMailSender MOCK_MAIL_SENDER = new MockMailSender();

@Override public SmtpMailSender getSender() { return MOCK_MAIL_SENDER; }

@Override protected boolean isServiceCompatible(final String serviceHost) { return empty(serviceHost); }
}

Laden…
Abbrechen
Speichern