Issues (1)

src/Model/RewriteMapRepository.php (1 issue)

Labels
Severity
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 IntegerNet\RewriteMap\Model\RewriteMap as RewriteMap;
12
use Magento\Framework\Exception\InputException as InputException;
13
use Magento\UrlRewrite\Model\OptionProvider as UrlRewriteOptionProvider;
14
use Magento\UrlRewrite\Model\ResourceModel\UrlRewriteCollection as UrlRewriteCollection;
15
use Magento\UrlRewrite\Model\ResourceModel\UrlRewriteCollectionFactory as UrlRewriteCollectionFactory;
0 ignored issues
show
The type Magento\UrlRewrite\Model...ewriteCollectionFactory was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
16
use Magento\UrlRewrite\Service\V1\Data\UrlRewrite as UrlRewrite;
17
18
class RewriteMapRepository
19
{
20
    private const ALLOWED_REDIRECT_TYPES = [UrlRewriteOptionProvider::PERMANENT, UrlRewriteOptionProvider::TEMPORARY];
21
    /**
22
     * @var UrlRewriteCollectionFactory
23
     */
24
    private $rewriteCollectionFactory;
25
26 2
    public function __construct(UrlRewriteCollectionFactory $rewriteCollectionFactory)
27
    {
28 2
        $this->rewriteCollectionFactory = $rewriteCollectionFactory;
29 2
    }
30
31
    /**
32
     * @param int $storeId
33
     * @param int $redirectType
34
     * @return RewriteMap
35
     * @throws InputException
36
     */
37 2
    public function getByStoreAndType(int $storeId, int $redirectType): RewriteMap
38
    {
39 2
        if (!in_array($redirectType, self::ALLOWED_REDIRECT_TYPES)) {
40
            throw new InputException(
41
                __(
42
                    'The given redirect type "%1" is not an allowed type: [%2]',
43
                    $redirectType,
44
                    implode(',', self::ALLOWED_REDIRECT_TYPES)
45
                )
46
            );
47
        }
48
49
        /** @var UrlRewriteCollection $rewriteCollection */
50 2
        $rewriteCollection = $this->rewriteCollectionFactory->create();
51 2
        $rewriteCollection->addStoreFilter($storeId);
52 2
        $rewriteCollection->addFieldToFilter(UrlRewrite::REDIRECT_TYPE, $redirectType);
53
54 2
        $rewriteMap = new RewriteMap($storeId, $redirectType);
55
56 2
        foreach ($rewriteCollection as $urlRewrite) {
57
            /** @var \Magento\UrlRewrite\Model\UrlRewrite $urlRewrite */
58 2
            $rewriteMap->addRewrite($urlRewrite->getRequestPath(), $urlRewrite->getTargetPath());
59
        }
60
61 2
        return $rewriteMap;
62
    }
63
}
64