diff --git a/mailchimp.services.yml b/mailchimp.services.yml index e5be4fc..01be062 100644 --- a/mailchimp.services.yml +++ b/mailchimp.services.yml @@ -25,4 +25,4 @@ services: mailchimp.client_factory: class: Drupal\mailchimp\ClientFactory - arguments: ['@mailchimp.settings', '@logger.channel.mailchimp'] + arguments: ['@mailchimp.settings', '@logger.channel.mailchimp', '@messenger'] diff --git a/src/ClientFactory.php b/src/ClientFactory.php index 7975ce2..dfb70ef 100644 --- a/src/ClientFactory.php +++ b/src/ClientFactory.php @@ -3,9 +3,10 @@ namespace Drupal\mailchimp; use Drupal\Core\Config\Config; -use Drupal\mailchimp\Exception\ClientFactoryException; +use Drupal\Core\Messenger\MessengerInterface; use Mailchimp\Mailchimp; use Psr\Log\LoggerInterface; +use Drupal\mailchimp\Exception\ClientFactoryException; /** * Factory for Mailchimp PHP Library. @@ -17,14 +18,21 @@ class ClientFactory { * * @var \Drupal\Core\Config\Config */ - protected $config; + protected Config $config; /** * Mailchimp logging interface. * * @var \Psr\Log\LoggerInterface */ - protected $logger; + protected LoggerInterface $logger; + + /** + * Messenger Service. + * + * @var \Drupal\Core\Messenger\MessengerInterface + */ + protected MessengerInterface $messenger; /** * Mailchimp Library instances, keyed by class name. @@ -40,10 +48,13 @@ class ClientFactory { * Mailchimp Settings. * @param \Psr\Log\LoggerInterface $logger * Logging interface. + * @param \Drupal\Core\Messenger\MessengerInterface $messenger + * Messenger Service. */ - public function __construct(Config $config, LoggerInterface $logger) { + public function __construct(Config $config, LoggerInterface $logger, MessengerInterface $messenger) { $this->config = $config; $this->logger = $logger; + $this->messenger = $messenger; } /** @@ -113,6 +124,7 @@ class ClientFactory { $api_key = $this->config->get('api_key'); if (!strlen($api_key)) { $this->logger->error('Mailchimp API Key cannot be blank.'); + $this->messenger->addError(t('Mailchimp API Key is needed for functionality to work.')); throw new ClientFactoryException('Mailchimp API Key cannot be blank'); }