| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- <?php
 
- /**
 
-  * Copyright © Magento, Inc. All rights reserved.
 
-  * See COPYING.txt for license details.
 
-  */
 
- declare(strict_types=1);
 
- namespace Magento\CustomerGraphQl\Model\Customer;
 
- use Magento\Newsletter\Model\SubscriberFactory;
 
- /**
 
-  * Change subscription status. Subscribe OR unsubscribe if required
 
-  */
 
- class ChangeSubscriptionStatus
 
- {
 
-     /**
 
-      * @var SubscriberFactory
 
-      */
 
-     private $subscriberFactory;
 
-     /**
 
-      * @param SubscriberFactory $subscriberFactory
 
-      */
 
-     public function __construct(
 
-         SubscriberFactory $subscriberFactory
 
-     ) {
 
-         $this->subscriberFactory = $subscriberFactory;
 
-     }
 
-     /**
 
-      * Change subscription status. Subscribe OR unsubscribe if required
 
-      *
 
-      * @param int $customerId
 
-      * @param bool $subscriptionStatus
 
-      * @return void
 
-      */
 
-     public function execute(int $customerId, bool $subscriptionStatus): void
 
-     {
 
-         $subscriber = $this->subscriberFactory->create()->loadByCustomerId($customerId);
 
-         if ($subscriptionStatus === true && !$subscriber->isSubscribed()) {
 
-             $this->subscriberFactory->create()->subscribeCustomerById($customerId);
 
-         } elseif ($subscriptionStatus === false && $subscriber->isSubscribed()) {
 
-             $this->subscriberFactory->create()->unsubscribeCustomerById($customerId);
 
-         }
 
-     }
 
- }
 
 
  |