ClaimsCollector::add()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Damax\Bundle\ApiAuthBundle\Jwt\Claims;
6
7
use Damax\Bundle\ApiAuthBundle\Jwt\Claims;
8
use Symfony\Component\Security\Core\User\UserInterface;
9
10
final class ClaimsCollector implements Claims
11
{
12
    private $items = [];
13
14
    public function __construct(iterable $items = [])
15
    {
16
        foreach ($items as $item) {
17
            $this->add($item);
18
        }
19
    }
20
21
    public function add(Claims $claims): void
22
    {
23
        $this->items[] = $claims;
24
    }
25
26
    public function resolve(UserInterface $user): array
27
    {
28
        $reduce = function (array $acc, Claims $claims) use ($user): array {
29
            return array_merge($acc, $claims->resolve($user));
30
        };
31
32
        return array_reduce($this->items, $reduce, []);
33
    }
34
}
35