ConfigProvider::getVerificationCode()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
rs 10
cc 1
nc 1
nop 0
1
<?php
2
/**
3
 * File: ConfigProvider.php
4
 *
5
 * @author Maciej Sławik <[email protected]>
6
 * @copyright Copyright (C) 2018 Lizard Media (http://lizardmedia.pl)
7
 */
8
declare(strict_types=1);
9
10
namespace LizardMedia\GoogleAnalyticsVerifier\Model;
11
12
use LizardMedia\GoogleAnalyticsVerifier\Api\ConfigProviderInterface;
13
use LizardMedia\GoogleAnalyticsVerifier\Api\Data\RewriteInterface;
14
use LizardMedia\GoogleAnalyticsVerifier\Model\Data\RewriteArray;
15
use LizardMedia\GoogleAnalyticsVerifier\Model\Data\RewriteArrayFactory;
16
use LizardMedia\GoogleAnalyticsVerifier\Model\Data\RewriteFactory;
17
use Magento\Framework\App\Config\ScopeConfigInterface;
18
use Zend\Json\Json;
19
20
/**
21
 * Class ConfigProvider
22
 * @package LizardMedia\GoogleAnalyticsVerifier\Model
23
 */
24
class ConfigProvider implements ConfigProviderInterface
25
{
26
    /**
27
     * @var string
28
     */
29
    public const XML_PATH_VERIFICATION_CODE = 'lizardmedia_google_analytics_verifier/head/verification_code';
30
31
    /**
32
     * @var string
33
     */
34
    public const XML_PATH_VERIFICATION_FILES = 'lizardmedia_google_analytics_verifier/file/files';
35
36
    /**
37
     * @var ScopeConfigInterface
38
     */
39
    private $scopeConfig;
40
41
    /**
42
     * @var RewriteFactory
43
     */
44
    private $rewriteFactory;
45
46
    /**
47
     * @var RewriteArrayFactory
48
     */
49
    private $rewriteArrayFactory;
50
51
    /**
52
     * GeneralConfigProvider constructor.
53
     * @param ScopeConfigInterface $scopeConfig
54
     * @param RewriteFactory $rewriteFactory
55
     * @param RewriteArrayFactory $rewriteArrayFactory
56
     */
57
    public function __construct(
58
        ScopeConfigInterface $scopeConfig,
59
        RewriteFactory $rewriteFactory,
60
        RewriteArrayFactory $rewriteArrayFactory
61
    ) {
62
        $this->scopeConfig = $scopeConfig;
63
        $this->rewriteFactory = $rewriteFactory;
64
        $this->rewriteArrayFactory = $rewriteArrayFactory;
65
    }
66
67
    /**
68
     * @return string
69
     */
70
    public function getVerificationCode(): string
71
    {
72
        return (string)$this->scopeConfig->getValue(self::XML_PATH_VERIFICATION_CODE);
73
    }
74
75
    /**
76
     * @return RewriteArray
77
     */
78
    public function getRewritesDataArray(): RewriteArray
79
    {
80
        $encodedFiles = $this->scopeConfig->getValue(self::XML_PATH_VERIFICATION_FILES);
81
        $filesArray = Json::decode((string)$encodedFiles, Json::TYPE_ARRAY);
82
        /** @var RewriteArray $rewriteArray */
83
        $rewriteArray = $this->rewriteArrayFactory->create();
84
85
        foreach ($filesArray as $fileData) {
86
            /** @var RewriteInterface $rewrite */
87
            $rewrite = $this->rewriteFactory->create();
88
            $rewrite->setFileName($fileData[RewriteInterface::FILENAME]);
89
            $rewrite->setFileContent($fileData[RewriteInterface::FILECONTENT]);
90
            $rewriteArray->add($rewrite);
91
        }
92
93
        return $rewriteArray;
94
    }
95
}
96