forked from LightsOnHudson/FPP-Plugin-TwilioControl
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathSerialize.php
83 lines (65 loc) · 2.15 KB
/
Serialize.php
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
83
<?php
namespace Twilio;
class Serialize {
private static function flatten(array $map, array $result = [], array $previous = []): array {
foreach ($map as $key => $value) {
if (\is_array($value)) {
$result = self::flatten($value, $result, \array_merge($previous, [$key]));
} else {
$result[\implode('.', \array_merge($previous, [$key]))] = $value;
}
}
return $result;
}
public static function prefixedCollapsibleMap($map, string $prefix): array {
if ($map === null || $map === Values::NONE) {
return [];
}
$flattened = self::flatten($map);
$result = [];
foreach ($flattened as $key => $value) {
$result[$prefix . '.' . $key] = $value;
}
return $result;
}
public static function iso8601Date($dateTime): string {
if ($dateTime === null || $dateTime === Values::NONE) {
return Values::NONE;
}
if (\is_string($dateTime)) {
return $dateTime;
}
$utcDate = clone $dateTime;
$utcDate->setTimezone(new \DateTimeZone('+0000'));
return $utcDate->format('Y-m-d');
}
public static function iso8601DateTime($dateTime): string {
if ($dateTime === null || $dateTime === Values::NONE) {
return Values::NONE;
}
if (\is_string($dateTime)) {
return $dateTime;
}
$utcDate = clone $dateTime;
$utcDate->setTimezone(new \DateTimeZone('+0000'));
return $utcDate->format('Y-m-d\TH:i:s\Z');
}
public static function booleanToString($boolOrStr) {
if ($boolOrStr === null || \is_string($boolOrStr)) {
return $boolOrStr;
}
return $boolOrStr ? 'True' : 'False';
}
public static function jsonObject($object) {
if (\is_array($object)) {
return \json_encode($object);
}
return $object;
}
public static function map($values, $map_func) {
if (!\is_array($values)) {
return $values;
}
return \array_map($map_func, $values);
}
}