Skip to content

Commit c09c17e

Browse files
committed
Created Config Module for Newsletter
1 parent c37a7a4 commit c09c17e

File tree

2 files changed

+63
-19
lines changed

2 files changed

+63
-19
lines changed

app/code/Magento/CustomerGraphQl/Model/Resolver/CreateCustomer.php

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,13 @@
1414
use Magento\Framework\GraphQl\Query\ResolverInterface;
1515
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
1616
use Magento\Store\Model\ScopeInterface;
17-
use Magento\Framework\App\Config\ScopeConfigInterface;
17+
use Magento\Newsletter\Model\Config;
1818

1919
/**
2020
* Create customer account resolver
2121
*/
2222
class CreateCustomer implements ResolverInterface
2323
{
24-
/**
25-
* Configuration path to newsletter active setting
26-
*/
27-
const XML_PATH_NEWSLETTER_ACTIVE = 'newsletter/general/active';
28-
29-
/**
30-
* @var ScopeConfigInterface
31-
*/
32-
private $scopeConfig;
33-
3424
/**
3525
* @var ExtractCustomerData
3626
*/
@@ -41,19 +31,24 @@ class CreateCustomer implements ResolverInterface
4131
*/
4232
private $createCustomerAccount;
4333

34+
/**
35+
* @var Config
36+
*/
37+
private $config;
38+
4439
/**
4540
* CreateCustomer constructor.
4641
*
4742
* @param ExtractCustomerData $extractCustomerData
4843
* @param CreateCustomerAccount $createCustomerAccount
49-
* @param ScopeConfigInterface $scopeConfig
44+
* @param Config $config
5045
*/
5146
public function __construct(
5247
ExtractCustomerData $extractCustomerData,
5348
CreateCustomerAccount $createCustomerAccount,
54-
ScopeConfigInterface $scopeConfig
49+
Config $config
5550
) {
56-
$this->scopeConfig = $scopeConfig;
51+
$this->config = $config;
5752
$this->extractCustomerData = $extractCustomerData;
5853
$this->createCustomerAccount = $createCustomerAccount;
5954
}
@@ -72,11 +67,7 @@ public function resolve(
7267
throw new GraphQlInputException(__('"input" value should be specified'));
7368
}
7469

75-
if (!$this->scopeConfig->getValue(
76-
self::XML_PATH_NEWSLETTER_ACTIVE,
77-
ScopeInterface::SCOPE_STORE
78-
)
79-
) {
70+
if (!$this->config->isActive()) {
8071
$args['input']['is_subscribed'] = false;
8172
}
8273

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Newsletter\Model;
9+
10+
/**
11+
* Newsletter configuration model
12+
*/
13+
class Config
14+
{
15+
/**
16+
* Configuration path to newsletter active setting
17+
*/
18+
const XML_PATH_NEWSLETTER_ACTIVE = 'newsletter/general/active';
19+
20+
/**
21+
* @var \Magento\Framework\App\Config\ScopeConfigInterface
22+
*/
23+
protected $scopeConfig;
24+
25+
/**
26+
* @var \Magento\Config\Model\ResourceModel\Config
27+
*/
28+
protected $resourceConfig;
29+
30+
/**
31+
* Config constructor.
32+
*
33+
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
34+
* @param \Magento\Config\Model\ResourceModel\Config $resourceConfig
35+
*/
36+
public function __construct(
37+
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
38+
\Magento\Config\Model\ResourceModel\Config $resourceConfig
39+
) {
40+
$this->scopeConfig = $scopeConfig;
41+
$this->resourceConfig = $resourceConfig;
42+
}
43+
44+
/**
45+
* Returns newsletter's enabled status
46+
*
47+
* @return bool
48+
*/
49+
public function isActive()
50+
{
51+
return $this->scopeConfig->isSetFlag(self::XML_PATH_NEWSLETTER_ACTIVE);
52+
}
53+
}

0 commit comments

Comments
 (0)