CategoryUrl::aroundGetUrl()   A
last analyzed

Complexity

Conditions 2
Paths 3

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 11
c 0
b 0
f 0
rs 9.4285
cc 2
eloc 7
nc 3
nop 2
1
<?php
2
3
namespace Tkotosz\CatalogRouter\Plugin;
4
5
use Tkotosz\CatalogRouter\Api\CatalogUrlProviderInterface;
6
use Tkotosz\CatalogRouter\Model\Exception\EntityDataNotFoundException;
7
use Tkotosz\CatalogRouter\Model\Service\StoreIdResolver;
8
use Magento\Catalog\Model\Category;
9
use Closure;
10
11
class CategoryUrl
12
{
13
    /**
14
     * @var CatalogUrlProviderInterface
15
     */
16
    private $catalogUrlProvider;
17
    
18
    /**
19
     * @var StoreIdResolver
20
     */
21
    private $storeIdResolver;
22
    
23
    /**
24
     * @param CatalogUrlProviderInterface $catalogUrlProvider
25
     * @param StoreIdResolver             $storeIdResolver
26
     */
27
    public function __construct(CatalogUrlProviderInterface $catalogUrlProvider, StoreIdResolver $storeIdResolver)
28
    {
29
        $this->catalogUrlProvider = $catalogUrlProvider;
30
        $this->storeIdResolver = $storeIdResolver;
31
    }
32
    
33
    /**
34
     * @param Category $category
35
     * @param Closure  $proceed
36
     *
37
     * @return string
38
     */
39
    public function aroundGetUrl(Category $category, Closure $proceed)
40
    {
41
        try {
42
            $storeId = $this->storeIdResolver->resolve($category);
43
            $url = $this->catalogUrlProvider->getCategoryUrl($category->getId(), $storeId);
44
        } catch (EntityDataNotFoundException $e) {
45
            $url = $proceed();
46
        }
47
48
        return $url;
49
    }
50
}
51