SpringSendGridV2Configurer.java

  1. package fr.sii.ogham.spring.v1.email;

  2. import org.springframework.boot.autoconfigure.sendgrid.SendGridProperties;

  3. import com.sendgrid.SendGrid;

  4. import fr.sii.ogham.core.builder.MessagingBuilder;
  5. import fr.sii.ogham.email.sendgrid.builder.AbstractSendGridBuilder;
  6. import fr.sii.ogham.email.sendgrid.v2.builder.sendgrid.SendGridV2Builder;
  7. import fr.sii.ogham.email.sendgrid.v2.sender.impl.sendgrid.client.DelegateSendGridClient;
  8. import fr.sii.ogham.spring.email.AbstractSpringSendGridConfigurer;
  9. import fr.sii.ogham.spring.email.OghamSendGridProperties;

  10. public class SpringSendGridV2Configurer extends AbstractSpringSendGridConfigurer {

  11.     public SpringSendGridV2Configurer(OghamSendGridProperties properties, SendGridProperties springProperties, SendGrid sendGrid) {
  12.         super(properties, springProperties, sendGrid);
  13.     }

  14.     @Override
  15.     protected Class<? extends AbstractSendGridBuilder<?, ?>> getSendGridBuilderClass() {
  16.         return SendGridV2Builder.class;
  17.     }

  18.     @Override
  19.     protected void useSpringSendGridClient(MessagingBuilder builder) {
  20.         // @formatter:off
  21.         builder.email()
  22.             .sender(SendGridV2Builder.class)
  23.                 .client(new DelegateSendGridClient(sendGrid));
  24.         // @formatter:on
  25.     }

  26.     @Override
  27.     protected void useOghamSendGridClientWithSpringProperties(MessagingBuilder builder) {
  28.         super.useOghamSendGridClientWithSpringProperties(builder);
  29.         // @formatter:off
  30.         builder.email()
  31.             .sender(SendGridV2Builder.class)
  32.                 .username(springProperties.getUsername())
  33.                 .password(springProperties.getPassword());
  34.         // @formatter:on
  35.     }
  36. }