Completed
Push — master ( 2ae6ae...28d798 )
by Paweł
22s queued 12s
created

ArticleAuthorMediaRouter   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

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

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 13 1
A generate() 0 8 3
A supports() 0 4 2
A getRouteDebugMessage() 0 4 1
1
<?php
2
3
/*
4
 * This file is part of the Superdesk Web Publisher Core Bundle.
5
 *
6
 * Copyright 2015 Sourcefabric z.u. and contributors.
7
 *
8
 * For the full copyright and license information, please see the
9
 * AUTHORS and LICENSE files distributed with this source code.
10
 *
11
 * @copyright 2015 Sourcefabric z.ú
12
 * @license http://www.superdesk.org/license
13
 */
14
15
namespace SWP\Bundle\CoreBundle\Routing;
16
17
use Psr\Log\LoggerInterface;
18
use SWP\Bundle\ContentBundle\Model\AuthorMediaInterface;
19
use Symfony\Bundle\FrameworkBundle\Routing\Router;
20
use SWP\Component\TemplatesSystem\Gimme\Meta\Meta;
21
use Symfony\Cmf\Component\Routing\VersatileGeneratorInterface;
22
use Psr\Container\ContainerInterface;
23
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
24
use Symfony\Component\Routing\RequestContext;
25
26
class ArticleAuthorMediaRouter extends Router implements VersatileGeneratorInterface
27
{
28
    protected $authorMediaManager;
29
30
    public function __construct(
31
        ContainerInterface $container,
32
        $resource,
33
        array $options = [],
34
        RequestContext $context = null,
35
        ContainerInterface $parameters = null,
36
        LoggerInterface $logger = null,
37
        string $defaultLocale = null
38
    ) {
39
        $this->authorMediaManager = $container->get('swp_core_bundle.manager.author_media');
40
41
        parent::__construct($container, $resource, $options, $context, $parameters, $logger, $defaultLocale);
42
    }
43
44
    public function generate($meta, $parameters = [], $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH)
45
    {
46
        if ($meta instanceof Meta && ($meta->getValues() instanceof AuthorMediaInterface)) {
47
            return $this->authorMediaManager->getMediaPublicUrl($meta->getValues()->getImage());
48
        }
49
50
        return '';
51
    }
52
53
    /**
54
     * {@inheritdoc}
55
     */
56
    public function supports($name)
57
    {
58
        return $name instanceof Meta && ($name->getValues() instanceof AuthorMediaInterface);
59
    }
60
61
    public function getRouteDebugMessage($name, array $parameters = [])
62
    {
63
        return 'Route for article author media '.$name->getValues()->getId().' not found';
64
    }
65
}
66