Passed
Push — master ( 76cb70...440cff )
by Angel Fernando Quiroz
10:57
created

ResourceFileHelper::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 0
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 4
rs 10
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
declare(strict_types=1);
6
7
namespace Chamilo\CoreBundle\Helpers;
8
9
use Chamilo\CoreBundle\Entity\ResourceFile;
10
use Chamilo\CoreBundle\Entity\ResourceNode;
11
use Chamilo\CoreBundle\Settings\SettingsManager;
12
13
class ResourceFileHelper
14
{
15
    public function __construct(
16
        private readonly SettingsManager $settingsManager,
17
        private readonly AccessUrlHelper $accessUrlHelper,
18
    ){}
19
20
    public function resolveResourceFileByAccessUrl(ResourceNode $resourceNode): ?ResourceFile
21
    {
22
        $accessUrlSpecificFiles = 'true' === $this->settingsManager->getSetting('document.access_url_specific_files')
23
            && $this->accessUrlHelper->isMultiple();
24
25
        $resourceFile = null;
26
        $resourceFiles = $resourceNode->getResourceFiles();
27
28
        if ($accessUrlSpecificFiles) {
29
            $currentUrl = $this->accessUrlHelper->getCurrent()?->getUrl();
30
31
            foreach ($resourceFiles as $file) {
32
                if ($file->getAccessUrl() && $file->getAccessUrl()->getUrl() === $currentUrl) {
33
                    $resourceFile = $file;
34
35
                    break;
36
                }
37
            }
38
        }
39
40
        $resourceFile ??= $resourceFiles->filter(fn ($file) => null === $file->getAccessUrl())->first();
41
42
        return $resourceFile;
43
    }
44
}