Completed
Pull Request — master (#384)
by Kristof
03:27
created

ItemBaseAdapter::getResolvedCreatorUserId()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 11
rs 9.9
c 0
b 0
f 0
cc 3
nc 4
nop 0
1
<?php
2
3
namespace CultuurNet\UDB3\Cdb;
4
5
use CultureFeed_Cdb_Item_Base;
6
use DateTimeImmutable;
7
use ValueObjects\StringLiteral\StringLiteral;
8
9
class ItemBaseAdapter
10
{
11
    /**
12
     * @var CultureFeed_Cdb_Item_Base
13
     */
14
    private $item;
15
16
    /**
17
     * @var CreatedByToUserIdResolverInterface
18
     */
19
    private $userIdResolver;
20
21
    public function __construct(
22
        CultureFeed_Cdb_Item_Base $item,
23
        CreatedByToUserIdResolverInterface $userIdResolver
24
    ) {
25
        $this->item = $item;
26
        $this->userIdResolver = $userIdResolver;
27
    }
28
29
    public function getResolvedCreatorUserId(): string
30
    {
31
        $createdByIdentifier = $this->item->getCreatedBy();
32
        if ($createdByIdentifier) {
33
            $userId = $this->userIdResolver->resolveCreatedByToUserId(
34
                new StringLiteral($createdByIdentifier)
35
            );
36
        }
37
38
        return isset($userId) ? (string) $userId : '';
39
    }
40
41
    public function getCreationDateTime(): ?DateTimeImmutable
42
    {
43
        return DateTimeFactory::dateTimeFromDateString(
44
            $this->item->getCreationDate()
45
        );
46
    }
47
}
48