TwigFilters::getDateTimeFromTimestamp()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 2
ccs 1
cts 1
cp 1
crap 1
rs 10
1
<?php
2
3
namespace App\Twig;
4
5
use App\Entity\ServiceAttributeUserRoleValue;
6
use App\Entity\ServiceAttributeUserTypeValue;
7
use App\Entity\ServiceAttributeValue;
8
use App\Entity\ServiceAttributeValueInterface;
9
use App\Service\FriendlyAttributeResolver;
10
use DateTime;
11
use Symfony\Contracts\Translation\TranslatorInterface;
12
use Twig\Extension\AbstractExtension;
13
use Twig\TwigFilter;
14
use Twig\TwigFunction;
15
16
class TwigFilters extends AbstractExtension {
17
    public function __construct(private TranslatorInterface $translator, private FriendlyAttributeResolver $friendlyAttributeResolver)
18
    {
19
    }
20 14
21 14
    public function getFilters(): array {
22 14
        return [
23 14
            new TwigFilter('attributeSource', [ $this, 'attributeSource' ]),
24
            new TwigFilter('attributeFriendlyName', [ $this, 'attributeFriendlyName']),
25 5
            new TwigFilter('from_timestamp', [ $this, 'getDateTimeFromTimestamp'])
26
        ];
27 5
    }
28 5
29 5
    public function getDateTimeFromTimestamp(int $timestamp): DateTime {
30
        return (new DateTime())->setTimestamp($timestamp);
31
    }
32
33
    public function attributeFriendlyName($attribute) {
34
        return $this->friendlyAttributeResolver->getFriendlyAttributeName($attribute);
35
    }
36
37
    public function attributeSource(ServiceAttributeValueInterface $attributeValue) {
38
        if($attributeValue instanceof ServiceAttributeValue) {
39
            return $this->translator->trans('users.attributes.sources.user');
40
        } else if($attributeValue instanceof ServiceAttributeUserTypeValue) {
41
            return sprintf(
42
                '%s "%s"',
43
                $this->translator->trans('users.attributes.sources.type'),
44
                $attributeValue->getUserType()->getName()
45
            );
46
        } else if($attributeValue instanceof ServiceAttributeUserRoleValue) {
47
            return sprintf(
48
                '%s "%s"',
49
                $this->translator->trans('users.attributes.sources.role'),
50
                $attributeValue->getUserRole()->getName()
51
            );
52
        }
53
    }
54
55
}