Completed
Push — master ( 8f8c03...b08b3c )
by Constantin
03:24
created

MetaData   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 8
lcom 0
cbo 0
dl 0
loc 53
ccs 17
cts 17
cp 1
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getDateCreated() 0 4 1
A getAggregateId() 0 4 1
A getAggregateClass() 0 4 1
A getAuthenticatedUserId() 0 4 1
A __construct() 0 12 1
A addTimeZone() 0 5 3
1
<?php
2
/******************************************************************************
3
 * Copyright (c) 2016 Constantin Galbenu <[email protected]>             *
4
 ******************************************************************************/
5
6
namespace Gica\Cqrs\Event;
7
8
9
class MetaData
10
{
11
12
    /**
13
     * @var \DateTimeImmutable
14
     */
15
    private $dateCreated;
16
17
    private $aggregateId;
18
    private $authenticatedUserId;
19
20
    /* @var string */
21
    private $aggregateClass;
22
23 18
    public function __construct(
24
        $aggregateId,
25
        string $aggregateClass,
26
        \DateTimeImmutable $dateCreated,
27
        $authenticatedUserId = null
28
    )
29
    {
30 18
        $this->dateCreated = $this->addTimeZone($dateCreated);
31 18
        $this->aggregateId = $aggregateId;
32 18
        $this->authenticatedUserId = $authenticatedUserId;
33 18
        $this->aggregateClass = $aggregateClass;
34 18
    }
35
36 1
    public function getDateCreated(): \DateTimeImmutable
37
    {
38 1
        return $this->dateCreated;
39
    }
40
41 2
    public function getAggregateId()
42
    {
43 2
        return $this->aggregateId;
44
    }
45
46 2
    public function getAggregateClass()
47
    {
48 2
        return $this->aggregateClass;
49
    }
50
51 1
    public function getAuthenticatedUserId()
52
    {
53 1
        return $this->authenticatedUserId;
54
    }
55
56 18
    private function addTimeZone(\DateTimeImmutable $dateCreated): \DateTimeImmutable
57
    {
58 18
        return $dateCreated->getTimezone() ? $dateCreated :
59 18
            ($dateCreated->setTimezone(new \DateTimeZone('Europe/Bucharest')) ?: $dateCreated);
60
    }
61
}