Passed
Push — master ( b53357...3b673d )
by Sergio
02:34
created

HitCounterDtoAssembler::__construct()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 1
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace coderius\hitCounter\services;
4
5
use coderius\hitCounter\models\HitCounterModel;
6
use coderius\hitCounter\entities\HitCounter;
7
use coderius\hitCounter\dto\HitDto;
8
9
/**
10
 * Class HitCounterAssembler
11
 */
12
13
final class HitCounterDtoAssembler{
14
15
    private $entityClass;
16
    
17
    public function __construct($entityClass = HitCounter::class)
18
    {
19
        if(!(new $entityClass) instanceof HitCounter){
20
            throw new \InvalidArgumentException($this->entityClass . 'not subclass from' . HitCounter::class);
21
        }
22
        $this->entityClass = $entityClass;
23
        
24
    }
25
26
    public function readDto(HitDto $dto): HitCounter
27
    {
28
        $hit = $this->entityClass::create(
29
            $dto->getCounterId(),
30
            $dto->getCookieMark(),
31
            $dto->getJsCookeiEnabled(),
32
            $dto->getJsJavaEnabled(),
33
            $dto->getJsTimezoneOffset(),
34
            $dto->getJsTimezone(),
35
            $dto->getJsConnection(),
36
            $dto->getJsCurrentUrl(),
37
            $dto->getJsRefererUrl(),
38
            $dto->getJsScreenWidth(),
39
            $dto->getJsScreenHeight(),
40
            $dto->getJsColorDepth(),
41
            $dto->getJsBrowserLanguage(),
42
            $dto->getJsHistoryLength(),
43
            $dto->getJsIsToutchDevice(),
44
            $dto->getJsProcessorRam(),
45
            $dto->getServIp(),
46
            $dto->getServUserAgent(),
47
            $dto->getServRefererUrl(),
48
            $dto->getServServerName(),
49
            $dto->getServAuthUserId(),
50
            $dto->getServPort(),
51
            $dto->getServCookies(),
52
            $dto->getServOs(),
53
            $dto->getServClient(),
54
            $dto->getServDevice(),
55
            $dto->getServBrand(),
56
            $dto->getServModel(),
57
            $dto->getServBot(),
58
            $dto->getServHostByIp(),
59
            $dto->getServIsProxyOrVpn()
60
        );
61
        
62
        return $hit;
63
    }
64
65
    // public function writeDto(HitCounter $hit): HitDto
66
    // {
67
    //     // not finished
68
    //     return;
69
        
70
    // }
71
72
}