simplenews_mailjet_subscriptions deprecated fix
This commit is contained in:
		@@ -302,7 +302,7 @@
 | 
			
		||||
              "With no blocks, clicking on the Custom Blocks tab crashes site https://www.drupal.org/project/structure_sync/issues/3070414":"https://www.drupal.org/files/issues/2022-03-23/PluginNotFoundException-3070414-3.patch"
 | 
			
		||||
            },
 | 
			
		||||
            "drupal/simplenews_mailjet_subscriptions": {
 | 
			
		||||
              "using mailjet module":"./patches/simplenews_mailjet_subscriptions__usingmailjetmodule#2.patch"
 | 
			
		||||
              "using mailjet module":"./patches/simplenews_mailjet_subscriptions__usingmailjetmodule#3.patch"
 | 
			
		||||
            },
 | 
			
		||||
            "drupal/graphql": {
 | 
			
		||||
              "invalid translation language https://github.com/drupal-graphql/graphql/pull/1176": "./patches/graphql-fix-invalid-translation-language-dev.patch"
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,794 @@
 | 
			
		||||
diff --git a/README.txt b/README.txt
 | 
			
		||||
index cee6e1a..b488e91 100644
 | 
			
		||||
--- a/README.txt
 | 
			
		||||
+++ b/README.txt
 | 
			
		||||
@@ -15,6 +15,7 @@ REQUIREMENTS
 | 
			
		||||
 This module requires the following modules:
 | 
			
		||||
 
 | 
			
		||||
  * Simplenews (https://www.drupal.org/project/simplenews)
 | 
			
		||||
+ * Mailet (https://www.drupal.org/project/Mailjet)
 | 
			
		||||
 
 | 
			
		||||
  INSTALLATION
 | 
			
		||||
 ------------
 | 
			
		||||
diff --git a/simplenews_mailjet_subscriptions.module b/simplenews_mailjet_subscriptions.module
 | 
			
		||||
index 09abe13..74214f6 100644
 | 
			
		||||
--- a/simplenews_mailjet_subscriptions.module
 | 
			
		||||
+++ b/simplenews_mailjet_subscriptions.module
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
 
 | 
			
		||||
 use Drupal\Core\Routing\RouteMatchInterface;
 | 
			
		||||
 use Drupal\simplenews\Entity\Subscriber;
 | 
			
		||||
-use Drupal\simplenews_mailjet_subscriptions\SimplenewsMailjetSubscriptionsUtilities;
 | 
			
		||||
+// use Drupal\simplenews_mailjet_subscriptions\SimplenewsMailjetSubscriptionsUtilities;
 | 
			
		||||
 use Drupal\simplenews_mailjet_subscriptions\Entity\SimplenewsMailjetSubscriptionEntity;
 | 
			
		||||
 use Drupal\Component\Utility\Html;
 | 
			
		||||
 
 | 
			
		||||
@@ -24,18 +24,18 @@ use Drupal\Component\Utility\Html;
 | 
			
		||||
 function simplenews_mailjet_subscriptions_simplenews_subscribe(Subscriber $subscriber, string $subscription) {
 | 
			
		||||
   $entities = SimplenewsMailjetSubscriptionEntity::loadMultiple();
 | 
			
		||||
   foreach ((array) $entities as $entity) {
 | 
			
		||||
-    $api_key = $entity->getApiKey();
 | 
			
		||||
-    $secret_key = $entity->getSecretkey();
 | 
			
		||||
     $listID = $entity->getID();
 | 
			
		||||
     $table = $entity->get('mapping_table');
 | 
			
		||||
     if (is_array($table)) {
 | 
			
		||||
       foreach ($table as $category) {
 | 
			
		||||
         if ($category['simplenews_news'] == $subscription) {
 | 
			
		||||
-          SimplenewsMailjetSubscriptionsUtilities::subscribeUser($subscriber, $subscription, $category, $api_key, $secret_key, $listID);
 | 
			
		||||
+          // SimplenewsMailjetSubscriptionsUtilities::subscribeUser($subscriber, $category);
 | 
			
		||||
+          \Drupal::service('simplenews_mailjet_subscriptions.utilities')->subscribeUser($listID, $subscriber, $category);
 | 
			
		||||
         }
 | 
			
		||||
       }
 | 
			
		||||
     }
 | 
			
		||||
   }
 | 
			
		||||
+  // \Drupal::service('simplenews_mailjet_subscriptions.utilities')->subscribeUser($subscriber, $subscription);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 /**
 | 
			
		||||
@@ -51,19 +51,74 @@ function simplenews_mailjet_subscriptions_simplenews_subscribe(Subscriber $subsc
 | 
			
		||||
 function simplenews_mailjet_subscriptions_simplenews_unsubscribe(Subscriber $subscriber, string $subscription) {
 | 
			
		||||
   $entities = SimplenewsMailjetSubscriptionEntity::loadMultiple();
 | 
			
		||||
   foreach ((array) $entities as $entity) {
 | 
			
		||||
-    $api_key = $entity->getApiKey();
 | 
			
		||||
-    $secret_key = $entity->getSecretkey();
 | 
			
		||||
     $listID = $entity->getID();
 | 
			
		||||
     $table = $entity->get('mapping_table');
 | 
			
		||||
     if (is_array($table)) {
 | 
			
		||||
       foreach ($table as $category) {
 | 
			
		||||
         if ($category['simplenews_news'] == $subscription) {
 | 
			
		||||
           // Unsubscribe.
 | 
			
		||||
-          SimplenewsMailjetSubscriptionsUtilities::unsubscribeUser($subscriber, $subscription, $category, $api_key, $secret_key, $listID);
 | 
			
		||||
+          // SimplenewsMailjetSubscriptionsUtilities::unsubscribeUser($subscriber, $category);
 | 
			
		||||
+          \Drupal::service('simplenews_mailjet_subscriptions.utilities')->unsubscribeUser($listID, $subscriber, $category);
 | 
			
		||||
         }
 | 
			
		||||
       }
 | 
			
		||||
     }
 | 
			
		||||
   }
 | 
			
		||||
+  // \Drupal::service('simplenews_mailjet_subscriptions.utilities')->unsubscribeUser($subscriber, $subscription);
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
+/**
 | 
			
		||||
+ * Act after a subscriber is updated.
 | 
			
		||||
+ *
 | 
			
		||||
+ * @param \Drupal\simplenews\Entity\Subscriber $subscriber
 | 
			
		||||
+ *   The subscriber object including all subscriptions of this user.
 | 
			
		||||
+ *
 | 
			
		||||
+ * @ingroup subscriber
 | 
			
		||||
+ */
 | 
			
		||||
+function simplenews_mailjet_subscriptions_simplenews_subscriber_update(Subscriber $subscriber) {
 | 
			
		||||
+  $new_mail=$subscriber->getMail();
 | 
			
		||||
+  $original_mail = $subscriber->original->getMail();
 | 
			
		||||
+  if ($new_mail !== $original_mail) {
 | 
			
		||||
+    $new_subscriptions = $subscriber->getSubscribedNewsletterIds();
 | 
			
		||||
+    $original_subscriptions = $subscriber->original->getSubscribedNewsletterIds();
 | 
			
		||||
+    $entities = SimplenewsMailjetSubscriptionEntity::loadMultiple();
 | 
			
		||||
+    foreach ((array) $entities as $entity) {
 | 
			
		||||
+      $listID = $entity->getID();
 | 
			
		||||
+      $table = $entity->get('mapping_table');
 | 
			
		||||
+      if (is_array($table)) {
 | 
			
		||||
+        foreach ($table as $category) {
 | 
			
		||||
+          if ( in_array($category['simplenews_news'], $original_subscriptions) ) {
 | 
			
		||||
+            \Drupal::service('simplenews_mailjet_subscriptions.utilities')->unsubscribeUser($listID, $subscriber->original, $category);
 | 
			
		||||
+          }
 | 
			
		||||
+          if ( in_array($category['simplenews_news'], $new_subscriptions) ) {
 | 
			
		||||
+            \Drupal::service('simplenews_mailjet_subscriptions.utilities')->subscribeUser($listID, $subscriber, $category);
 | 
			
		||||
+          }
 | 
			
		||||
+        }
 | 
			
		||||
+      }
 | 
			
		||||
+    }
 | 
			
		||||
+  }
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
+/**
 | 
			
		||||
+ * Act after a subscriber has been deleted.
 | 
			
		||||
+ *
 | 
			
		||||
+ * @param \Drupal\simplenews\Entity\Subscriber $subscriber
 | 
			
		||||
+ *   The subscriber object including all subscriptions of this user.
 | 
			
		||||
+ *
 | 
			
		||||
+ * @ingroup subscriber
 | 
			
		||||
+ */
 | 
			
		||||
+function simplenews_mailjet_subscriptions_simplenews_subscriber_delete(Subscriber $subscriber) {
 | 
			
		||||
+  $entities = SimplenewsMailjetSubscriptionEntity::loadMultiple();
 | 
			
		||||
+  foreach ((array) $entities as $entity) {
 | 
			
		||||
+    $listID = $entity->getID();
 | 
			
		||||
+    $table = $entity->get('mapping_table');
 | 
			
		||||
+    if (is_array($table)) {
 | 
			
		||||
+      foreach ($table as $category) {
 | 
			
		||||
+        \Drupal::service('simplenews_mailjet_subscriptions.utilities')->unsubscribeUser($listID, $subscriber, $category);
 | 
			
		||||
+      }
 | 
			
		||||
+    }
 | 
			
		||||
+  }
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 /**
 | 
			
		||||
diff --git a/simplenews_mailjet_subscriptions.services.yml b/simplenews_mailjet_subscriptions.services.yml
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000..cee6a81
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/simplenews_mailjet_subscriptions.services.yml
 | 
			
		||||
@@ -0,0 +1,7 @@
 | 
			
		||||
+services:
 | 
			
		||||
+  simplenews_mailjet_subscriptions.handler:
 | 
			
		||||
+    class: Drupal\simplenews_mailjet_subscriptions\SimplenewsMailjetSubscriptionsMailjetHandler
 | 
			
		||||
+    arguments: ['@mailjet.client_factory']
 | 
			
		||||
+  simplenews_mailjet_subscriptions.utilities:
 | 
			
		||||
+    class: Drupal\simplenews_mailjet_subscriptions\SimplenewsMailjetSubscriptionsUtilities
 | 
			
		||||
+    arguments: [ '@simplenews_mailjet_subscriptions.handler' ]
 | 
			
		||||
diff --git a/src/Entity/SimplenewsMailjetSubscriptionEntity.php b/src/Entity/SimplenewsMailjetSubscriptionEntity.php
 | 
			
		||||
index 27b7737..34c8df5 100644
 | 
			
		||||
--- a/src/Entity/SimplenewsMailjetSubscriptionEntity.php
 | 
			
		||||
+++ b/src/Entity/SimplenewsMailjetSubscriptionEntity.php
 | 
			
		||||
@@ -30,8 +30,6 @@ use Drupal\Core\Config\Entity\ConfigEntityBase;
 | 
			
		||||
  *   config_export = {
 | 
			
		||||
  *     "id",
 | 
			
		||||
  *     "title",
 | 
			
		||||
- *     "api_key",
 | 
			
		||||
- *     "secret_key",
 | 
			
		||||
  *     "mapping_table"
 | 
			
		||||
  *   }
 | 
			
		||||
  * )
 | 
			
		||||
@@ -94,53 +92,53 @@ class SimplenewsMailjetSubscriptionEntity extends ConfigEntityBase implements Si
 | 
			
		||||
     return $this->get('id');
 | 
			
		||||
   }
 | 
			
		||||
 
 | 
			
		||||
-  /**
 | 
			
		||||
-   * Returns the entity api key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @return string
 | 
			
		||||
-   *   The entity api key.
 | 
			
		||||
-   */
 | 
			
		||||
-  public function getApiKey() {
 | 
			
		||||
-    return $this->get('api_key');
 | 
			
		||||
-  }
 | 
			
		||||
-
 | 
			
		||||
-  /**
 | 
			
		||||
-   * Sets the entity api key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @param string $api_key
 | 
			
		||||
-   *   Api key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @return $this
 | 
			
		||||
-   *   The Simplenews Mailjet Subscription entity.
 | 
			
		||||
-   */
 | 
			
		||||
-  public function setApiKey($api_key) {
 | 
			
		||||
-    $this->set('api_key', $api_key);
 | 
			
		||||
-    return $this;
 | 
			
		||||
-  }
 | 
			
		||||
-
 | 
			
		||||
-  /**
 | 
			
		||||
-   * Returns the entity secret key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @return string
 | 
			
		||||
-   *   The entity secret key.
 | 
			
		||||
-   */
 | 
			
		||||
-  public function getSecretkey() {
 | 
			
		||||
-    return $this->get('secret_key');
 | 
			
		||||
-  }
 | 
			
		||||
-
 | 
			
		||||
-  /**
 | 
			
		||||
-   * Sets the entity secret key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @param string $secret_key
 | 
			
		||||
-   *   Secret key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @return $this
 | 
			
		||||
-   *   The Simplenews Mailjet Subscription entity.
 | 
			
		||||
-   */
 | 
			
		||||
-  public function setSecretkey($secret_key) {
 | 
			
		||||
-    $this->set('secret_key', $secret_key);
 | 
			
		||||
-    return $this;
 | 
			
		||||
-  }
 | 
			
		||||
+  // /**
 | 
			
		||||
+  //  * Returns the entity api key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @return string
 | 
			
		||||
+  //  *   The entity api key.
 | 
			
		||||
+  //  */
 | 
			
		||||
+  // public function getApiKey() {
 | 
			
		||||
+  //   return $this->get('api_key');
 | 
			
		||||
+  // }
 | 
			
		||||
+
 | 
			
		||||
+  // /**
 | 
			
		||||
+  //  * Sets the entity api key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @param string $api_key
 | 
			
		||||
+  //  *   Api key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @return $this
 | 
			
		||||
+  //  *   The Simplenews Mailjet Subscription entity.
 | 
			
		||||
+  //  */
 | 
			
		||||
+  // public function setApiKey($api_key) {
 | 
			
		||||
+  //   $this->set('api_key', $api_key);
 | 
			
		||||
+  //   return $this;
 | 
			
		||||
+  // }
 | 
			
		||||
+
 | 
			
		||||
+  // /**
 | 
			
		||||
+  //  * Returns the entity secret key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @return string
 | 
			
		||||
+  //  *   The entity secret key.
 | 
			
		||||
+  //  */
 | 
			
		||||
+  // public function getSecretkey() {
 | 
			
		||||
+  //   return $this->get('secret_key');
 | 
			
		||||
+  // }
 | 
			
		||||
+
 | 
			
		||||
+  // /**
 | 
			
		||||
+  //  * Sets the entity secret key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @param string $secret_key
 | 
			
		||||
+  //  *   Secret key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @return $this
 | 
			
		||||
+  //  *   The Simplenews Mailjet Subscription entity.
 | 
			
		||||
+  //  */
 | 
			
		||||
+  // public function setSecretkey($secret_key) {
 | 
			
		||||
+  //   $this->set('secret_key', $secret_key);
 | 
			
		||||
+  //   return $this;
 | 
			
		||||
+  // }
 | 
			
		||||
 
 | 
			
		||||
   /**
 | 
			
		||||
    * Sets the entity mapping table.
 | 
			
		||||
diff --git a/src/Form/SimplenewsMailjetSubscriptionAddForm.php b/src/Form/SimplenewsMailjetSubscriptionAddForm.php
 | 
			
		||||
index 836bee3..bc70090 100644
 | 
			
		||||
--- a/src/Form/SimplenewsMailjetSubscriptionAddForm.php
 | 
			
		||||
+++ b/src/Form/SimplenewsMailjetSubscriptionAddForm.php
 | 
			
		||||
@@ -64,20 +64,20 @@ class SimplenewsMailjetSubscriptionAddForm extends EntityForm {
 | 
			
		||||
         'exists' => [$this, 'exist'],
 | 
			
		||||
       ],
 | 
			
		||||
     ];
 | 
			
		||||
-    $form['api_key'] = [
 | 
			
		||||
-      '#type' => 'textfield',
 | 
			
		||||
-      '#title' => $this->t('API Key'),
 | 
			
		||||
-      '#maxlength' => 32,
 | 
			
		||||
-      '#description' => $this->t('Mailjet Account API Key'),
 | 
			
		||||
-      '#required' => TRUE,
 | 
			
		||||
-    ];
 | 
			
		||||
-    $form['secret_key'] = [
 | 
			
		||||
-      '#type' => 'password',
 | 
			
		||||
-      '#title' => $this->t('Secret Key'),
 | 
			
		||||
-      '#maxlength' => 32,
 | 
			
		||||
-      '#description' => $this->t('Mailjet Account Secret Key'),
 | 
			
		||||
-      '#required' => TRUE,
 | 
			
		||||
-    ];
 | 
			
		||||
+    // $form['api_key'] = [
 | 
			
		||||
+    //   '#type' => 'textfield',
 | 
			
		||||
+    //   '#title' => $this->t('API Key'),
 | 
			
		||||
+    //   '#maxlength' => 32,
 | 
			
		||||
+    //   '#description' => $this->t('Mailjet Account API Key'),
 | 
			
		||||
+    //   '#required' => TRUE,
 | 
			
		||||
+    // ];
 | 
			
		||||
+    // $form['secret_key'] = [
 | 
			
		||||
+    //   '#type' => 'password',
 | 
			
		||||
+    //   '#title' => $this->t('Secret Key'),
 | 
			
		||||
+    //   '#maxlength' => 32,
 | 
			
		||||
+    //   '#description' => $this->t('Mailjet Account Secret Key'),
 | 
			
		||||
+    //   '#required' => TRUE,
 | 
			
		||||
+    // ];
 | 
			
		||||
 
 | 
			
		||||
     return $form;
 | 
			
		||||
   }
 | 
			
		||||
diff --git a/src/Form/SimplenewsMailjetSubscriptionEditForm.php b/src/Form/SimplenewsMailjetSubscriptionEditForm.php
 | 
			
		||||
index 98342b5..f67ba96 100644
 | 
			
		||||
--- a/src/Form/SimplenewsMailjetSubscriptionEditForm.php
 | 
			
		||||
+++ b/src/Form/SimplenewsMailjetSubscriptionEditForm.php
 | 
			
		||||
@@ -76,20 +76,20 @@ class SimplenewsMailjetSubscriptionEditForm extends EntityForm {
 | 
			
		||||
       '#help' => $this->t('Configuration title'),
 | 
			
		||||
       '#required' => TRUE,
 | 
			
		||||
     ];
 | 
			
		||||
-    $form['api_key'] = [
 | 
			
		||||
-      '#type' => 'textfield',
 | 
			
		||||
-      '#title' => $this->t('API Key'),
 | 
			
		||||
-      '#maxlength' => 32,
 | 
			
		||||
-      '#default_value' => $this->entity->getApiKey(),
 | 
			
		||||
-      '#help' => $this->t('Mailjet Account API Key'),
 | 
			
		||||
-      '#required' => TRUE,
 | 
			
		||||
-      '#disabled' => !$this->entity->isNew(),
 | 
			
		||||
-    ];
 | 
			
		||||
-
 | 
			
		||||
-    if ($this->entity->getApiKey() && $this->entity->getSecretkey()) {
 | 
			
		||||
+    // $form['api_key'] = [
 | 
			
		||||
+    //   '#type' => 'textfield',
 | 
			
		||||
+    //   '#title' => $this->t('API Key'),
 | 
			
		||||
+    //   '#maxlength' => 32,
 | 
			
		||||
+    //   '#default_value' => $this->entity->getApiKey(),
 | 
			
		||||
+    //   '#help' => $this->t('Mailjet Account API Key'),
 | 
			
		||||
+    //   '#required' => TRUE,
 | 
			
		||||
+    //   '#disabled' => !$this->entity->isNew(),
 | 
			
		||||
+    // ];
 | 
			
		||||
+
 | 
			
		||||
+    // if ($this->entity->getApiKey() && $this->entity->getSecretkey()) {
 | 
			
		||||
       $this->constructTable($form, $form_state);
 | 
			
		||||
 
 | 
			
		||||
-    }
 | 
			
		||||
+    // }
 | 
			
		||||
 
 | 
			
		||||
     $form['add_subscription'] = [
 | 
			
		||||
       '#type' => 'submit',
 | 
			
		||||
diff --git a/src/Plugin/RulesAction/UnsubscribeFromList.php b/src/Plugin/RulesAction/UnsubscribeFromList.php
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000..3f546ef
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/src/Plugin/RulesAction/UnsubscribeFromList.php
 | 
			
		||||
@@ -0,0 +1,51 @@
 | 
			
		||||
+<?php
 | 
			
		||||
+
 | 
			
		||||
+namespace Drupal\simplenews_mailjet_subscriptions\Plugin\RulesAction;
 | 
			
		||||
+
 | 
			
		||||
+use Drupal\rules\Core\RulesActionBase;
 | 
			
		||||
+use Drupal\simplenews\SubscriberInterface;
 | 
			
		||||
+
 | 
			
		||||
+/**
 | 
			
		||||
+ * Provides a 'Unsubscribe' action.
 | 
			
		||||
+ *
 | 
			
		||||
+ * @RulesAction(
 | 
			
		||||
+ *   id = "rules_simplenews_mailjet_subscriptions_unsubscribe_from_list",
 | 
			
		||||
+ *   label = @Translation("Unsubscribe from newsletter, giving mailjet listID and email"),
 | 
			
		||||
+ *   category = @Translation("Simplenews Mailjet Subscriptions"),
 | 
			
		||||
+ *   context_definitions = {
 | 
			
		||||
+ *     "listID" = @ContextDefinition("integer",
 | 
			
		||||
+ *       label = @Translation("Mailjet list ID"),
 | 
			
		||||
+ *       description = @Translation("Specifies the mailjet list ID from which simplenews list will be found and email will be unsubscribed from.")
 | 
			
		||||
+ *     ),
 | 
			
		||||
+ *     "email" = @ContextDefinition("string",
 | 
			
		||||
+ *       label = @Translation("Subscriber email"),
 | 
			
		||||
+ *       description = @Translation("Specifies the email to unsubscribe.")
 | 
			
		||||
+ *     )
 | 
			
		||||
+ *   }
 | 
			
		||||
+ * )
 | 
			
		||||
+ */
 | 
			
		||||
+class UnsubscribeFromList extends RulesActionBase {
 | 
			
		||||
+
 | 
			
		||||
+  /**
 | 
			
		||||
+   * Deletes the Entity.
 | 
			
		||||
+   *
 | 
			
		||||
+   * @param integer listID
 | 
			
		||||
+   *    The mailjet list to unsubcsribe from.
 | 
			
		||||
+   *
 | 
			
		||||
+   * @param string email
 | 
			
		||||
+   *    The email to unsubcribe.
 | 
			
		||||
+   */
 | 
			
		||||
+  protected function doExecute(integer $listID, string $email) {
 | 
			
		||||
+    $l = $listID;
 | 
			
		||||
+    $e = $email;
 | 
			
		||||
+    \Drupal::logger('simplenews_mailjet_subscriptions')->notice(print_r($listID, true));
 | 
			
		||||
+    // \Drupal::logger('simplenews_mailjet_subscriptions')->notice("Unsubscribe webhook triggered for listID: " . $listID . ", and email: " . $email . ".");
 | 
			
		||||
+
 | 
			
		||||
+    // find corresponding simplenews list from mailjet listID
 | 
			
		||||
+
 | 
			
		||||
+    // get subscriber entity
 | 
			
		||||
+
 | 
			
		||||
+    // unsubscribe subscriber from simplenews list
 | 
			
		||||
+  }
 | 
			
		||||
+
 | 
			
		||||
+}
 | 
			
		||||
\ No newline at end of file
 | 
			
		||||
diff --git a/src/SimplenewsMailjetSubscriptionsInterface.php b/src/SimplenewsMailjetSubscriptionsInterface.php
 | 
			
		||||
index c727d26..37c082d 100644
 | 
			
		||||
--- a/src/SimplenewsMailjetSubscriptionsInterface.php
 | 
			
		||||
+++ b/src/SimplenewsMailjetSubscriptionsInterface.php
 | 
			
		||||
@@ -36,43 +36,43 @@ interface SimplenewsMailjetSubscriptionsInterface extends ConfigEntityInterface
 | 
			
		||||
    */
 | 
			
		||||
   public function getId();
 | 
			
		||||
 
 | 
			
		||||
-  /**
 | 
			
		||||
-   * Returns the entity api key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @return string
 | 
			
		||||
-   *   The entity api key.
 | 
			
		||||
-   */
 | 
			
		||||
-  public function getApiKey();
 | 
			
		||||
+  // /**
 | 
			
		||||
+  //  * Returns the entity api key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @return string
 | 
			
		||||
+  //  *   The entity api key.
 | 
			
		||||
+  //  */
 | 
			
		||||
+  // public function getApiKey();
 | 
			
		||||
 
 | 
			
		||||
-  /**
 | 
			
		||||
-   * Sets the entity api key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @param string $api_key
 | 
			
		||||
-   *   Api key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @return $this
 | 
			
		||||
-   *   The Simplenews Mailjet Subscription entity.
 | 
			
		||||
-   */
 | 
			
		||||
-  public function setApiKey($api_key);
 | 
			
		||||
+  // /**
 | 
			
		||||
+  //  * Sets the entity api key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @param string $api_key
 | 
			
		||||
+  //  *   Api key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @return $this
 | 
			
		||||
+  //  *   The Simplenews Mailjet Subscription entity.
 | 
			
		||||
+  //  */
 | 
			
		||||
+  // public function setApiKey($api_key);
 | 
			
		||||
 
 | 
			
		||||
-  /**
 | 
			
		||||
-   * Returns the entity secret key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @return string
 | 
			
		||||
-   *   The entity secret key.
 | 
			
		||||
-   */
 | 
			
		||||
-  public function getSecretkey();
 | 
			
		||||
+  // /**
 | 
			
		||||
+  //  * Returns the entity secret key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @return string
 | 
			
		||||
+  //  *   The entity secret key.
 | 
			
		||||
+  //  */
 | 
			
		||||
+  // public function getSecretkey();
 | 
			
		||||
 
 | 
			
		||||
-  /**
 | 
			
		||||
-   * Sets the entity secret key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @param string $secret_key
 | 
			
		||||
-   *   Secret key.
 | 
			
		||||
-   *
 | 
			
		||||
-   * @return $this
 | 
			
		||||
-   *   The Simplenews Mailjet Subscription entity.
 | 
			
		||||
-   */
 | 
			
		||||
-  public function setSecretkey($secret_key);
 | 
			
		||||
+  // /**
 | 
			
		||||
+  //  * Sets the entity secret key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @param string $secret_key
 | 
			
		||||
+  //  *   Secret key.
 | 
			
		||||
+  //  *
 | 
			
		||||
+  //  * @return $this
 | 
			
		||||
+  //  *   The Simplenews Mailjet Subscription entity.
 | 
			
		||||
+  //  */
 | 
			
		||||
+  // public function setSecretkey($secret_key);
 | 
			
		||||
 
 | 
			
		||||
   /**
 | 
			
		||||
    * Sets the entity mapping table.
 | 
			
		||||
diff --git a/src/SimplenewsMailjetSubscriptionsMailjetHandler.php b/src/SimplenewsMailjetSubscriptionsMailjetHandler.php
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000..a68cbf1
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/src/SimplenewsMailjetSubscriptionsMailjetHandler.php
 | 
			
		||||
@@ -0,0 +1,47 @@
 | 
			
		||||
+<?php
 | 
			
		||||
+
 | 
			
		||||
+namespace Drupal\simplenews_mailjet_subscriptions;
 | 
			
		||||
+
 | 
			
		||||
+use Mailjet\Resources;
 | 
			
		||||
+use Drupal\mailjet\MailjetHandler;
 | 
			
		||||
+
 | 
			
		||||
+/**
 | 
			
		||||
+ * Implement SimplenewsMailjetSubscriptionsMailjetHandler interface.
 | 
			
		||||
+ */
 | 
			
		||||
+class SimplenewsMailjetSubscriptionsMailjetHandler extends MailjetHandler implements SimplenewsMailjetSubscriptionsMailjetHandlerInterface{
 | 
			
		||||
+
 | 
			
		||||
+  /**
 | 
			
		||||
+   * {@inheritdoc}
 | 
			
		||||
+   *
 | 
			
		||||
+   * @return array|null
 | 
			
		||||
+   *   Return array with result or null.
 | 
			
		||||
+   */
 | 
			
		||||
+  public function createMailjetContact($email): ?array {
 | 
			
		||||
+    
 | 
			
		||||
+    $response = $this->mailjetClient->post(Resources::$Contact, ["body" => ['Email' => $email]]);
 | 
			
		||||
+
 | 
			
		||||
+    if ($response->success()) {
 | 
			
		||||
+      return $response->getData();
 | 
			
		||||
+    }
 | 
			
		||||
+
 | 
			
		||||
+    return NULL;
 | 
			
		||||
+  }
 | 
			
		||||
+
 | 
			
		||||
+  /**
 | 
			
		||||
+   * {@inheritdoc}
 | 
			
		||||
+   *
 | 
			
		||||
+   * @return array|null
 | 
			
		||||
+   *   Return array with result or null.
 | 
			
		||||
+   */
 | 
			
		||||
+  public function getMailjetContactByEmail($email): ?array {
 | 
			
		||||
+    
 | 
			
		||||
+    $response = $this->mailjetClient->get(Resources::$Contact, ['id' => $email]);
 | 
			
		||||
+
 | 
			
		||||
+    if ($response->success()) {
 | 
			
		||||
+      return $response->getData();
 | 
			
		||||
+    }
 | 
			
		||||
+
 | 
			
		||||
+    return NULL;
 | 
			
		||||
+  }
 | 
			
		||||
+
 | 
			
		||||
+}
 | 
			
		||||
\ No newline at end of file
 | 
			
		||||
diff --git a/src/SimplenewsMailjetSubscriptionsMailjetHandlerInterface.php b/src/SimplenewsMailjetSubscriptionsMailjetHandlerInterface.php
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000..b6484d7
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/src/SimplenewsMailjetSubscriptionsMailjetHandlerInterface.php
 | 
			
		||||
@@ -0,0 +1,34 @@
 | 
			
		||||
+<?php
 | 
			
		||||
+
 | 
			
		||||
+namespace Drupal\simplenews_mailjet_subscriptions;
 | 
			
		||||
+
 | 
			
		||||
+use Drupal\mailjet\MailjetHandlerInterface;
 | 
			
		||||
+
 | 
			
		||||
+/**
 | 
			
		||||
+ * Interface for mailjet handler.
 | 
			
		||||
+ */
 | 
			
		||||
+interface SimplenewsMailjetSubscriptionsMailjetHandlerInterface extends MailjetHandlerInterface {
 | 
			
		||||
+
 | 
			
		||||
+  /**
 | 
			
		||||
+   * create contact.
 | 
			
		||||
+   *
 | 
			
		||||
+   * @param string $email
 | 
			
		||||
+   *   email of the contact
 | 
			
		||||
+   *
 | 
			
		||||
+   * @return array|null
 | 
			
		||||
+   *   Return array with the result or null.
 | 
			
		||||
+   */
 | 
			
		||||
+  public function createMailjetContact($email): ?array;
 | 
			
		||||
+
 | 
			
		||||
+  /**
 | 
			
		||||
+   * Get contact by email.
 | 
			
		||||
+   *
 | 
			
		||||
+   * @param string $email
 | 
			
		||||
+   *   email of the contact
 | 
			
		||||
+   *
 | 
			
		||||
+   * @return array|null
 | 
			
		||||
+   *   Return array with the result or null.
 | 
			
		||||
+   */
 | 
			
		||||
+  public function getMailjetContactByEmail($email): ?array;
 | 
			
		||||
+
 | 
			
		||||
+}
 | 
			
		||||
\ No newline at end of file
 | 
			
		||||
diff --git a/src/SimplenewsMailjetSubscriptionsUtilities.php b/src/SimplenewsMailjetSubscriptionsUtilities.php
 | 
			
		||||
index 950ff8a..5cb351d 100644
 | 
			
		||||
--- a/src/SimplenewsMailjetSubscriptionsUtilities.php
 | 
			
		||||
+++ b/src/SimplenewsMailjetSubscriptionsUtilities.php
 | 
			
		||||
@@ -2,141 +2,122 @@
 | 
			
		||||
 
 | 
			
		||||
 namespace Drupal\simplenews_mailjet_subscriptions;
 | 
			
		||||
 
 | 
			
		||||
+// use Drupal\mailjet\MailjetHandlerInterface;
 | 
			
		||||
+use Drupal\simplenews_mailjet_subscriptions\SimplenewsMailjetSubscriptionsMailjetHandlerInterface;
 | 
			
		||||
+
 | 
			
		||||
 /**
 | 
			
		||||
- * Provides a list of Simplenews Mailjet Subscription entities.
 | 
			
		||||
+ * Utilisties
 | 
			
		||||
  */
 | 
			
		||||
 class SimplenewsMailjetSubscriptionsUtilities {
 | 
			
		||||
 
 | 
			
		||||
   /**
 | 
			
		||||
-   * Check Subscriber.
 | 
			
		||||
+   * MailjetHandler service.
 | 
			
		||||
+   *
 | 
			
		||||
+   * @var \Drupal\Simplenews_mailjet_subscriptions\SimplenewsMailjetSubscriptionsMailjetHandlerInterface
 | 
			
		||||
+   */
 | 
			
		||||
+  protected $mailjetHandler;
 | 
			
		||||
+
 | 
			
		||||
+/**
 | 
			
		||||
+   * SubscribeEmailForm constructor.
 | 
			
		||||
+   *
 | 
			
		||||
+   * @param \Drupal\Simplenews_mailjet_subscriptions\SimplenewsMailjetSubscriptionsMailjetHandlerInterface $mailjetHandler
 | 
			
		||||
+   *   The mailjet handler service.
 | 
			
		||||
    */
 | 
			
		||||
-  private static function checkSubscriber($api_key, $secret_key, $encoded_mail) {
 | 
			
		||||
-
 | 
			
		||||
-    // Check if contact exist
 | 
			
		||||
-    // verifica se o contacto ja tem opções.
 | 
			
		||||
-    $endpoint = 'https://api.mailjet.com/v3/REST/contactdata/' . $encoded_mail;
 | 
			
		||||
-    $ch = curl_init();
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_USERPWD, $api_key . ':' . $secret_key);
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_URL, $endpoint);
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 | 
			
		||||
-    $response = curl_exec($ch);
 | 
			
		||||
-    curl_close($ch);
 | 
			
		||||
-    $json = json_decode($response, TRUE);
 | 
			
		||||
-
 | 
			
		||||
-    return $json;
 | 
			
		||||
+  public function __construct(SimplenewsMailjetSubscriptionsMailjetHandlerInterface $mailjetHandler) {
 | 
			
		||||
+    $this->mailjetHandler = $mailjetHandler;
 | 
			
		||||
   }
 | 
			
		||||
 
 | 
			
		||||
   /**
 | 
			
		||||
-   * Update Subscriber.
 | 
			
		||||
+   * {@inheritDoc}
 | 
			
		||||
    */
 | 
			
		||||
-  private static function updateSubscriber($api_key, $secret_key, $listID, $subscriber_email, $contact_property, $newsletter_property_name, $action) {
 | 
			
		||||
-
 | 
			
		||||
-    // Add contact to mailjet.
 | 
			
		||||
-    $endpoint = 'https://api.mailjet.com/v3/REST/contactslist/' . $listID . '/managecontact';
 | 
			
		||||
-    $message = [
 | 
			
		||||
-      "Properties" => [
 | 
			
		||||
-        $contact_property => $newsletter_property_name,
 | 
			
		||||
-      ],
 | 
			
		||||
-      "Action" => $action,
 | 
			
		||||
-      "Email" => $subscriber_email,
 | 
			
		||||
-    ];
 | 
			
		||||
-    $payload = json_encode($message);
 | 
			
		||||
-
 | 
			
		||||
-    $ch = curl_init();
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_POST, 1);
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_USERPWD, $api_key . ':' . $secret_key);
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_URL, $endpoint);
 | 
			
		||||
-    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 | 
			
		||||
-    $response = curl_exec($ch);
 | 
			
		||||
-    curl_close($ch);
 | 
			
		||||
-    $json = json_decode($response, TRUE);
 | 
			
		||||
-
 | 
			
		||||
-    return $json;
 | 
			
		||||
+  public static function create(ContainerInterface $container) {
 | 
			
		||||
+    return new static(
 | 
			
		||||
+      $container->get('simplenews_mailjet_subscriptions.handler')
 | 
			
		||||
+    );
 | 
			
		||||
+  }
 | 
			
		||||
+
 | 
			
		||||
+  public function checkSubscriber($encoded_mail) {
 | 
			
		||||
+    $response = $this->mailjetHandler->getMailjetContactByEmail($encoded_mail);
 | 
			
		||||
+    if ($response) {
 | 
			
		||||
+      // contact alredy exists
 | 
			
		||||
+      $contact_id = $response[0]['ID'];
 | 
			
		||||
+      return $contact_id;
 | 
			
		||||
+    }
 | 
			
		||||
+
 | 
			
		||||
+    return null;
 | 
			
		||||
+  }
 | 
			
		||||
+
 | 
			
		||||
+  public function createSubscriber($email) {
 | 
			
		||||
+    $response = $this->mailjetHandler->createMailjetContact($email);
 | 
			
		||||
+    if ($response) {
 | 
			
		||||
+      // contact alredy exists
 | 
			
		||||
+      $contact_id = $response[0]['ID'];
 | 
			
		||||
+      return $contact_id;
 | 
			
		||||
+    }
 | 
			
		||||
+
 | 
			
		||||
+    return null;
 | 
			
		||||
   }
 | 
			
		||||
 
 | 
			
		||||
   /**
 | 
			
		||||
    * Subscribe User.
 | 
			
		||||
    */
 | 
			
		||||
-  public static function subscribeUser($subscriber, $subscription, $category, $api_key, $secret_key, $listID) {
 | 
			
		||||
+  public function subscribeUser($listID, $subscriber, $category) {
 | 
			
		||||
 
 | 
			
		||||
-    $contact_property = $category['contact_property'];
 | 
			
		||||
-    $newsletter_property_name = $category['newsletter_property_name'];
 | 
			
		||||
     $subscriber_email = $subscriber->getMail();
 | 
			
		||||
-    $encoded_mail = urlencode($subscriber_email);
 | 
			
		||||
-    $response = '';
 | 
			
		||||
 
 | 
			
		||||
-    $contact_info = self::checkSubscriber($api_key, $secret_key, $encoded_mail);
 | 
			
		||||
+    // hook is sometimes called with empty subscriber
 | 
			
		||||
+    if (!$subscriber_email) return;
 | 
			
		||||
 
 | 
			
		||||
-    $options = $contact_info['Data'];
 | 
			
		||||
+    $encoded_mail = urlencode($subscriber_email);
 | 
			
		||||
 
 | 
			
		||||
-    // Se existe - acrescenta a opções.
 | 
			
		||||
-    if ($options[0]['Data']) {
 | 
			
		||||
-      foreach ($options[0]['Data'] as $property) {
 | 
			
		||||
-        if ($property["Name"] == $contact_property) {
 | 
			
		||||
+    $contactid = $this->checkSubscriber($encoded_mail);
 | 
			
		||||
+    if (!$contactid) {
 | 
			
		||||
+      // subscriber does not exists yet, create it
 | 
			
		||||
+      $contactid = $this->createSubscriber($subscriber_email);
 | 
			
		||||
+    }
 | 
			
		||||
 
 | 
			
		||||
-          if (is_int(strpos($property['Value'], $newsletter_property_name))) {
 | 
			
		||||
-            $newsletter_property_name = $property['Value'];
 | 
			
		||||
-          }
 | 
			
		||||
-          else {
 | 
			
		||||
-            $newsletter_property_name = $property['Value'] . ';' . $newsletter_property_name;
 | 
			
		||||
-          }
 | 
			
		||||
-        }
 | 
			
		||||
+    if ($contactid) {
 | 
			
		||||
+      $contact = [
 | 
			
		||||
+        'Email' => $subscriber_email,
 | 
			
		||||
+        // 'Properties' => [
 | 
			
		||||
+        //   $contact_property => $newsletter_property_name
 | 
			
		||||
+        // ]
 | 
			
		||||
+      ];
 | 
			
		||||
+
 | 
			
		||||
+      $response = $this->mailjetHandler->syncMailjetContact($listID, $contact, 'addnoforce');
 | 
			
		||||
+      if ($response) {
 | 
			
		||||
+        // $contact_id = $response['Data'][0]['ContactID'];
 | 
			
		||||
+        \Drupal::logger('simplenews_mailjet_subscriptions')->notice('The mailjet user ' . $subscriber_email . ' subscribed to the ' . $listID . ' list.');
 | 
			
		||||
+      }else{
 | 
			
		||||
+        \Drupal::logger('simplenews_mailjet_subscriptions')->warning('error while subscrining ' . $subscriber_email . ' to the ' . $listID . ' list.');
 | 
			
		||||
       }
 | 
			
		||||
+
 | 
			
		||||
+    } else {
 | 
			
		||||
+      \Drupal::logger('simplenews_mailjet_subscriptions')->warning($subscriber_email . ' does not exists and can not be created on mailjet.');
 | 
			
		||||
     }
 | 
			
		||||
 
 | 
			
		||||
-    $response = self::updateSubscriber($api_key, $secret_key, $listID, $subscriber_email, $contact_property, $newsletter_property_name, 'addnoforce');
 | 
			
		||||
-    $contact_id = $response['Data'][0]['ContactID'];
 | 
			
		||||
-    \Drupal::logger('simplenews_mailjet_subscriptions')->notice('The mailjet user ' . $contact_id . ' subscribed to the ' . $contact_property . ' properties with the ' . $newsletter_property_name . ' values in the list ' . $listID . '.');
 | 
			
		||||
-    return $response;
 | 
			
		||||
+
 | 
			
		||||
   }
 | 
			
		||||
 
 | 
			
		||||
   /**
 | 
			
		||||
    * Unsubscribe User.
 | 
			
		||||
    */
 | 
			
		||||
-  public static function unsubscribeUser($subscriber, $subscription, $category, $api_key, $secret_key, $listID) {
 | 
			
		||||
-    $contact_property = $category['contact_property'];
 | 
			
		||||
-    $newsletter_property_name = $category['newsletter_property_name'];
 | 
			
		||||
+  public function unsubscribeUser($listID, $subscriber, $category) {
 | 
			
		||||
     $subscriber_email = $subscriber->getMail();
 | 
			
		||||
-    $encoded_mail = urlencode($subscriber_email);
 | 
			
		||||
-    $response = '';
 | 
			
		||||
-
 | 
			
		||||
-    $contact_info = self::checkSubscriber($api_key, $secret_key, $encoded_mail);
 | 
			
		||||
-    $contact_id = $contact_info['ContactID'];
 | 
			
		||||
-    $options = $contact_info['Data'];
 | 
			
		||||
-
 | 
			
		||||
-    if ($options[0]['Data']) {
 | 
			
		||||
-      foreach ($options[0]['Data'] as $property) {
 | 
			
		||||
-        if ($property["Name"] == $contact_property) {
 | 
			
		||||
-          if (substr_count($property['Value'], ';') == 0) {
 | 
			
		||||
-            $newsletter_property_name = '';
 | 
			
		||||
-            $response = self::updateSubscriber($api_key, $secret_key, $listID, $subscriber_email, $contact_property, $newsletter_property_name, 'remove');
 | 
			
		||||
-            $contact_id = $response['Data'][0]['ContactID'];
 | 
			
		||||
-            \Drupal::logger('simplenews_mailjet_subscriptions')->notice('The mailjet user ' . $contact_id . ' unsubscribed to the list ' . $listID . '.');
 | 
			
		||||
-          }
 | 
			
		||||
-          else {
 | 
			
		||||
-            $pos = strpos($property['Value'], $newsletter_property_name);
 | 
			
		||||
-            \Drupal::logger('simplenews_mailjet_subscriptions')->notice('The mailjet user ' . $contact_id . ' unsubscribed to the ' . $contact_property . ' properties with the ' . $newsletter_property_name . ' values in the list ' . $listID . '.');
 | 
			
		||||
-            if ($pos === 0) {
 | 
			
		||||
-              $newsletter_property_name = str_replace($newsletter_property_name . ';', '', $property['Value']);
 | 
			
		||||
-            }
 | 
			
		||||
-            else {
 | 
			
		||||
-              $newsletter_property_name = str_replace(';' . $newsletter_property_name, '', $property['Value']);
 | 
			
		||||
-            }
 | 
			
		||||
-            $response = self::updateSubscriber($api_key, $secret_key, $listID, $subscriber_email, $contact_property, $newsletter_property_name, 'addnoforce');
 | 
			
		||||
-            $contact_id = $response['Data'][0]['ContactID'];
 | 
			
		||||
-            \Drupal::logger('simplenews_mailjet_subscriptions')->notice('The mailjet user ' . $contact_id . 'remains subscribed to the ' . $contact_property . ' properties with the ' . $newsletter_property_name . ' values in the list ' . $listID . '.');
 | 
			
		||||
-
 | 
			
		||||
-          }
 | 
			
		||||
-        }
 | 
			
		||||
-      }
 | 
			
		||||
-    }
 | 
			
		||||
+    $contact = [
 | 
			
		||||
+      'Email' => $subscriber_email,
 | 
			
		||||
+      // 'Properties' => [
 | 
			
		||||
+      //   $contact_property => $newsletter_property_name
 | 
			
		||||
+      // ]
 | 
			
		||||
+    ];
 | 
			
		||||
 
 | 
			
		||||
-    return $response;
 | 
			
		||||
+    $response = $this->mailjetHandler->syncMailjetContact($listID, $contact, 'remove');
 | 
			
		||||
+    if ($response) {
 | 
			
		||||
+      // $contact_id = $response['Data'][0]['ContactID'];
 | 
			
		||||
+      \Drupal::logger('simplenews_mailjet_subscriptions')->notice('The mailjet user ' . $subscriber_email . ' removed from the ' . $listID . ' list.');
 | 
			
		||||
+    }else{
 | 
			
		||||
+      \Drupal::logger('simplenews_mailjet_subscriptions')->warning('error while removing ' . $subscriber_email . ' from the ' . $listID . ' list.');
 | 
			
		||||
+    }
 | 
			
		||||
   }
 | 
			
		||||
 
 | 
			
		||||
 }
 | 
			
		||||
		Reference in New Issue
	
	Block a user