Passed
Push — master ( 65d552...4599b6 )
by Angel Fernando Quiroz
10:41
created

AccessUrlHelper::getFirstAccessUrl()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
declare(strict_types=1);
6
7
namespace Chamilo\CoreBundle\ServiceHelper;
8
9
use Chamilo\CoreBundle\Entity\AccessUrl;
10
use Chamilo\CoreBundle\Repository\Node\AccessUrlRepository;
11
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
12
use Symfony\Component\Routing\RouterInterface;
13
14
class AccessUrlHelper
15
{
16
    public function __construct(
17
        private readonly AccessUrlRepository $accessUrlRepository,
18
        private readonly RouterInterface $router,
19
    ) {}
20
21
    public function isMultiple(): bool
22
    {
23
        static $accessUrlEnabled;
24
25
        if (!isset($accessUrlEnabled)) {
26
            $accessUrlEnabled = $this->accessUrlRepository->count([]) > 1;
27
        }
28
29
        return $accessUrlEnabled;
30
    }
31
32
    public function getFirstAccessUrl(): AccessUrl
33
    {
34
        $urlId = $this->accessUrlRepository->getFirstId();
35
36
        return $this->accessUrlRepository->find($urlId);
37
    }
38
39
    public function getCurrent(): AccessUrl
40
    {
41
        static $accessUrl;
42
43
        if (!empty($accessUrl)) {
44
            return $accessUrl;
45
        }
46
47
        $accessUrl = $this->getFirstAccessUrl();
48
49
        if ($this->isMultiple()) {
50
            $url = $this->router->generate('index', [], UrlGeneratorInterface::ABSOLUTE_URL);
51
52
            /** @var AccessUrl $accessUrl */
53
            $accessUrl = $this->accessUrlRepository->findOneBy(['url' => $url]);
54
        }
55
56
        return $accessUrl;
57
    }
58
}
59