Completed
Push — master ( 009411...7fe99b )
by Rafał
18:49 queued 07:10
created

TenantAwareAbsoluteUrlRouter::generate()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 15
rs 9.7666
c 0
b 0
f 0
cc 2
nc 2
nop 3
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the Superdesk Web Publisher Core Bundle.
7
 *
8
 * Copyright 2020 Sourcefabric z.u. and contributors.
9
 *
10
 * For the full copyright and license information, please see the
11
 * AUTHORS and LICENSE files distributed with this source code.
12
 *
13
 * @copyright 2020 Sourcefabric z.ú
14
 * @license http://www.superdesk.org/license
15
 */
16
17
namespace SWP\Bundle\CoreBundle\Routing;
18
19
use SWP\Bundle\CoreBundle\Model\TenantInterface;
20
use Symfony\Component\Routing\RouterInterface;
21
22
final class TenantAwareAbsoluteUrlRouter
23
{
24
    private $router;
25
26
    public function __construct(RouterInterface $router)
27
    {
28
        $this->router = $router;
29
    }
30
31
    public function generate(
32
        string $name,
33
        TenantInterface $tenant,
34
        array $parameters = []
35
    ): string {
36
        $context = $this->router->getContext();
37
        $host = $tenant->getDomainName();
38
        if (null !== ($subdomain = $tenant->getSubdomain())) {
39
            $host = $subdomain.'.'.$host;
40
        }
41
42
        $context->setHost($host);
43
44
        return $this->router->generate($name, $parameters, RouterInterface::ABSOLUTE_URL);
45
    }
46
}
47