modern-events-calendar-lite/app/api/Twilio/Deserialize.php

52 lines
1.3 KiB
PHP
Raw Normal View History

2024-10-15 12:04:03 +02:00
<?php
namespace Twilio;
use Twilio\Base\PhoneNumberCapabilities;
class Deserialize
{
/**
* Deserialize a string date into a DateTime object
*
* @param string $s A date or date and time, can be iso8601, rfc2822,
* YYYY-MM-DD format.
* @return \DateTime|string DateTime corresponding to the input string, in UTC time.
*/
public static function dateTime(?string $s)
{
try {
if ($s) {
return new \DateTime($s, new \DateTimeZone('UTC'));
}
} catch (\Exception $e) {
// no-op
}
return $s;
}
/**
* Deserialize an array into a PhoneNumberCapabilities object
*
* @param array|null $arr An array
* @return PhoneNumberCapabilities|array PhoneNumberCapabilities object corresponding to the input array.
*/
public static function phoneNumberCapabilities(?array $arr)
{
try {
if ($arr) {
$required = ["mms", "sms", "voice", "fax"];
if (count(array_intersect($required, array_keys($arr))) > 0) {
return new PhoneNumberCapabilities($arr);
}
}
} catch (\Exception $e) {
// no-op
}
return $arr;
}
}