RewriteMapsSavingService   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Test Coverage

Coverage 67.86%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 18
dl 0
loc 54
ccs 19
cts 28
cp 0.6786
rs 10
c 2
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 8 1
A saveRewriteMapsForAllStores() 0 9 2
A saveRewriteMap() 0 7 1
1
<?php
2
/**
3
 * integer_net GmbH Magento Module
4
 *
5
 * @copyright  Copyright (c) 2020 integer_net GmbH (http://www.integer-net.de/)
6
 * @author     Bernard Delhez <[email protected]>
7
 */
8
9
namespace IntegerNet\RewriteMap\Model;
10
11
use Magento\Framework\Filesystem;
12
use Magento\Framework\App\Filesystem\DirectoryList;
13
use Magento\Store\Model\StoreManagerInterface as StoreManagerInterface;
14
use Magento\UrlRewrite\Model\OptionProvider as UrlRewriteOptionProvider;
15
16
class RewriteMapsSavingService
17
{
18
    /**
19
     * @var Filesystem
20
     */
21
    private $filesystem;
22
    /**
23
     * @var StoreManagerInterface
24
     */
25
    private $storeManager;
26
    /**
27
     * @var RewriteMapRepository
28
     */
29
    private $urlRewriteRepository;
30
31 1
    public function __construct(
32
        Filesystem $filesystem,
33
        StoreManagerInterface $storeManager,
34
        RewriteMapRepository $urlRewriteRepository
35
    ) {
36 1
        $this->filesystem = $filesystem;
37 1
        $this->storeManager = $storeManager;
38 1
        $this->urlRewriteRepository = $urlRewriteRepository;
39 1
    }
40
41
    /**
42
     * @throws \Magento\Framework\Exception\FileSystemException
43
     * @throws \Magento\Framework\Exception\InputException
44
     */
45 1
    public function saveRewriteMapsForAllStores(): void
46
    {
47 1
        foreach ($this->storeManager->getStores() as $store) {
48 1
            $storeId = (int)$store->getId();
49 1
            $this->saveRewriteMap(
50 1
                $this->urlRewriteRepository->getByStoreAndType($storeId, UrlRewriteOptionProvider::PERMANENT)
51
            );
52 1
            $this->saveRewriteMap(
53 1
                $this->urlRewriteRepository->getByStoreAndType($storeId, UrlRewriteOptionProvider::TEMPORARY)
54
            );
55
        }
56 1
    }
57
58
    /**
59
     * @param RewriteMap $rewriteMap
60
     * @throws \Magento\Framework\Exception\FileSystemException
61
     * @throws \Magento\Framework\Exception\InputException
62
     */
63 1
    public function saveRewriteMap(RewriteMap $rewriteMap): void
64
    {
65 1
        $varDirectory = $this->filesystem->getDirectoryWrite(DirectoryList::VAR_DIR);
66 1
        $varDirectory->writeFile(
67 1
            'rewrite_map' . DIRECTORY_SEPARATOR . $rewriteMap->getFilename(),
68 1
            $rewriteMap->getContent(),
69 1
            'w'
70
        );
71 1
    }
72
}
73