Purger   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 50
c 0
b 0
f 0
wmc 3
lcom 1
cbo 0
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A purgeVerificationFileRewrites() 0 21 2
1
<?php
2
/**
3
 * File: Purger.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\Rewrite;
11
12
use Exception;
13
use LizardMedia\GoogleAnalyticsVerifier\Api\Rewrite\PurgerInterface;
14
use LizardMedia\GoogleAnalyticsVerifier\Api\Rewrite\RewriteDataInterface;
15
use LizardMedia\GoogleAnalyticsVerifier\Controller\File\Index;
16
use Magento\UrlRewrite\Model\ResourceModel\UrlRewrite as UrlRewriteResource;
17
use Magento\UrlRewrite\Model\ResourceModel\UrlRewriteCollection;
18
use Magento\UrlRewrite\Model\ResourceModel\UrlRewriteCollectionFactory;
19
use Magento\UrlRewrite\Model\UrlRewrite;
20
21
/**
22
 * Class Purger
23
 * @package LizardMedia\GoogleAnalyticsVerifier\Model\Rewrite
24
 */
25
class Purger implements PurgerInterface
26
{
27
    /**
28
     * @var UrlRewriteCollectionFactory
29
     */
30
    private $urlRewriteCollectionFactory;
31
32
    /**
33
     * @var UrlRewriteResource
34
     */
35
    private $urlRewriteResource;
36
37
    /**
38
     * Generator constructor.
39
     * @param UrlRewriteCollectionFactory $urlRewriteCollectionFactory
40
     * @param UrlRewriteResource $urlRewriteResource
41
     */
42
    public function __construct(
43
        UrlRewriteCollectionFactory $urlRewriteCollectionFactory,
44
        UrlRewriteResource $urlRewriteResource
45
    ) {
46
        $this->urlRewriteCollectionFactory = $urlRewriteCollectionFactory;
47
        $this->urlRewriteResource = $urlRewriteResource;
48
    }
49
50
    /**
51
     * @throws Exception
52
     */
53
    public function purgeVerificationFileRewrites()
54
    {
55
        /** @var UrlRewriteCollection $rewriteCollection */
56
        $rewriteCollection = $this->urlRewriteCollectionFactory->create();
57
58
        $rewriteCollection->addFieldToFilter(
59
            array_keys(RewriteDataInterface::GENERATED_REWRITE_DATA),
60
            array_values(RewriteDataInterface::GENERATED_REWRITE_DATA)
61
        );
62
        $rewriteCollection->addFieldToFilter(
63
            'target_path',
64
            [
65
                'like' => '%' . Index::URL_PATH . Index::FILENAME_PARAM . '/' . '%',
66
            ]
67
        );
68
69
        /** @var UrlRewrite $rewrite */
70
        foreach ($rewriteCollection->getItems() as $rewrite) {
71
            $this->urlRewriteResource->delete($rewrite);
72
        }
73
    }
74
}
75