Completed
Push — master ( 861886...cceff3 )
by John
10:56
created

Cookie::setContactId()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 10
ccs 5
cts 5
cp 1
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 5
nc 2
nop 1
crap 2
1
<?php
2
3
namespace Escopecz\MauticFormSubmit\Mautic;
4
5
use Escopecz\MauticFormSubmit\Cookie as StandardCookie;
6
7
/**
8
 * Helper class to get cookie properties specific to Mautic
9
 */
10
class Cookie extends StandardCookie
11
{
12
    /**
13
     * Holds Mautic session ID defined by PHP
14
     *
15
     * @var string
16
     */
17
    const MAUTIC_SESSION_ID = 'mautic_session_id';
18
19
    /**
20
     * Holds Mautic session ID defined by JS
21
     *
22
     * @var string
23
     */
24
    const MTC_SID = 'mtc_sid';
25
26
    /**
27
     * Holds Mautic Contact ID defined by JS
28
     *
29
     * @var string
30
     */
31
    const MTC_ID = 'mtc_id';
32
33
    /**
34
     * Get Mautic Contact ID from Cookie
35
     *
36
     * @return int|null
37
     */
38 18
    public function getContactId()
39
    {
40 18
        if ($mtcId = $this->getInt(self::MTC_ID)) {
41 12
            return $mtcId;
42 10
        } elseif ($mauticSessionId = $this->getSessionId()) {
43
            return $this->getInt($mauticSessionId);
44
        }
45
46 10
        return null;
47
    }
48
49
    /**
50
     * Set Mautic Contact ID cookies
51
     * Note: Call setMauticSessionId prior to this
52
     *
53
     * @param int $contactId
54
     *
55
     * @return Cookie
56
     */
57 12
    public function setContactId($contactId)
58
    {
59 12
        $this->set(self::MTC_ID, $contactId);
60
61 12
        if ($sessionId = $this->getSessionId()) {
62 2
            $this->set($sessionId, $contactId);
63
        }
64
65 12
        return $this;
66
    }
67
68
    /**
69
     * Unet Mautic Contact ID cookies
70
     *
71
     * @return Cookie
72
     */
73 6
    public function unsetContactId()
74
    {
75 6
        $this->unset(self::MTC_ID);
76
77 6
        if ($sessionId = $this->getSessionId()) {
78
            $this->unset($sessionId);
79
        }
80
81 6
        return $this;
82
    }
83
84
    /**
85
     * Returns Mautic session ID if it exists in the cookie
86
     *
87
     * @return string|null
88
     */
89 24
    public function getSessionId()
90
    {
91 24
        if ($mauticSessionId = $this->get(self::MAUTIC_SESSION_ID)) {
92 8
            return $mauticSessionId;
93
        }
94
95 24
        if ($mauticSessionId = $this->get(self::MTC_SID)) {
96 4
            return $mauticSessionId;
97
        }
98
99 24
        return null;
100
    }
101
102
    /**
103
     * Set Mautic Session ID cookies
104
     *
105
     * @param string $sessionId
106
     *
107
     * @return Cookie
108
     */
109 6
    public function setSessionId($sessionId)
110
    {
111 6
        $this->set(self::MAUTIC_SESSION_ID, $sessionId);
112 6
        $this->set(self::MTC_SID, $sessionId);
113
114 6
        return $this;
115
    }
116
117
    /**
118
     * Unset Mautic Session ID cookies
119
     *
120
     * @return Cookie
121
     */
122 6
    public function unsetSessionId()
123
    {
124 6
        $this->unset(self::MAUTIC_SESSION_ID);
125 6
        $this->unset(self::MTC_SID);
126
127 6
        return $this;
128
    }
129
}
130