Session::fromAmazonRequest()   A
last analyzed

Complexity

Conditions 5
Paths 16

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 5

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
c 1
b 0
f 0
dl 0
loc 11
ccs 8
cts 8
cp 1
rs 9.6111
cc 5
nc 16
nop 1
crap 5
1
<?php
2
3
namespace MaxBeckers\AmazonAlexa\Request;
4
5
use MaxBeckers\AmazonAlexa\Helper\PropertyHelper;
6
7
/**
8
 * @author Maximilian Beckers <[email protected]>
9
 */
10
class Session
11
{
12
    /**
13
     * @var bool|null
14
     */
15
    public $new;
16
17
    /**
18
     * @var string|null
19
     */
20
    public $sessionId;
21
22
    /**
23
     * @var Application|null
24
     */
25
    public $application;
26
27
    /**
28
     * Custom session attributes.
29
     *
30
     * @var array
31
     */
32
    public $attributes = [];
33
34
    /**
35
     * @var User|null
36
     */
37
    public $user;
38
39
    /**
40
     * @param array $amazonRequest
41
     *
42
     * @return Session
43
     */
44 12
    public static function fromAmazonRequest(array $amazonRequest): self
45
    {
46 12
        $session = new self();
47
48 12
        $session->new         = isset($amazonRequest['new']) ? (bool) $amazonRequest['new'] : null;
49 12
        $session->sessionId   = PropertyHelper::checkNullValueString($amazonRequest, 'sessionId');
50 12
        $session->application = isset($amazonRequest['application']) ? Application::fromAmazonRequest($amazonRequest['application']) : null;
51 12
        $session->attributes  = isset($amazonRequest['attributes']) ? (array) $amazonRequest['attributes'] : [];
52 12
        $session->user        = isset($amazonRequest['user']) ? User::fromAmazonRequest($amazonRequest['user']) : null;
53
54 12
        return $session;
55
    }
56
}
57