forked from queueit/KnownUser.V3.PHP
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueueITHelpers.php
More file actions
82 lines (72 loc) · 3.05 KB
/
QueueITHelpers.php
File metadata and controls
82 lines (72 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
namespace QueueIT\KnownUserV3\SDK;
class QueueUrlParams {
const TimeStampKey = "ts";
const ExtendableCookieKey = "ce";
const CookieValidityMinuteKey = "cv";
const HashKey = "h";
const EventIdKey = "e";
const QueueIdKey = "q";
const RedirectTypeKey = "rt";
const KeyValueSeparatorChar = '_';
const KeyValueSeparatorGroupChar = '~';
public $timeStamp = 0;
public $eventId = "";
public $hashCode = "";
public $extendableCookie = false;
public $cookieValidityMinute = null;
public $queueITToken = "";
public $queueITTokenWithoutHash = "";
public $queueId = "";
public $redirectType="";
public static function extractQueueParams($queueitToken) {
$result = new QueueUrlParams();
$result->queueITToken = $queueitToken;
$paramsNameValueList = explode(QueueUrlParams::KeyValueSeparatorGroupChar, $result->queueITToken);
foreach ($paramsNameValueList as $pNameValue) {
$paramNameValueArr = explode(QueueUrlParams::KeyValueSeparatorChar, $pNameValue);
switch ($paramNameValueArr[0]) {
case QueueUrlParams::TimeStampKey: {
if (is_numeric($paramNameValueArr[1])) {
$result->timeStamp = intval($paramNameValueArr[1]);
} else {
$result->timeStamp = 0;
}
break;
}
case QueueUrlParams::CookieValidityMinuteKey: {
if (is_numeric($paramNameValueArr[1])) {
$result->cookieValidityMinute = intval($paramNameValueArr[1]);
}
break;
}
case QueueUrlParams::EventIdKey: {
$result->eventId = $paramNameValueArr[1];
break;
}
case QueueUrlParams::ExtendableCookieKey: {
$result->extendableCookie = $paramNameValueArr[1] === 'True' || $paramNameValueArr[1] === 'true';
break;
}
case QueueUrlParams::HashKey: {
$result->hashCode = $paramNameValueArr[1];
break;
}
case QueueUrlParams::QueueIdKey: {
$result->queueId = $paramNameValueArr[1];
break;
}
case QueueUrlParams::RedirectTypeKey : {
$result->redirectType = $paramNameValueArr[1];
break;
}
}
}
$result->queueITTokenWithoutHash = str_replace(
QueueUrlParams::KeyValueSeparatorGroupChar
. QueueUrlParams::HashKey
. QueueUrlParams::KeyValueSeparatorChar
. $result->hashCode, "", $result->queueITToken);
return $result;
}
}