Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Xentral\Modules\GoogleCalendar\Data;
|
||||
|
||||
use Xentral\Modules\GoogleCalendar\Exception\InvalidArgumentException;
|
||||
|
||||
final class GoogleCalendarListItem
|
||||
{
|
||||
/** @var string ROLE_READER */
|
||||
public const ROLE_READER = 'reader';
|
||||
|
||||
/** @var string ROLE_OWNER */
|
||||
public const ROLE_OWNER = 'owner';
|
||||
|
||||
/** @var string ROLE_FREEBUSYREADER */
|
||||
public const ROLE_FREEBUSYREADER = 'freeBusyReader';
|
||||
|
||||
/** @var string $kind */
|
||||
private static $kind = 'calendar#calendarListEntry';
|
||||
|
||||
/** @var string $id */
|
||||
private $id;
|
||||
|
||||
/** @var string $summary */
|
||||
private $summary;
|
||||
|
||||
/** @var string $role */
|
||||
private $role;
|
||||
|
||||
/** @var string $timeZone */
|
||||
private $timeZone;
|
||||
|
||||
/** @var string $colorId */
|
||||
private $colorId;
|
||||
|
||||
/** @var bool $selected */
|
||||
private $selected;
|
||||
|
||||
/** @var bool $primary */
|
||||
private $primary;
|
||||
|
||||
/**
|
||||
* @param string $id
|
||||
* @param string $summary
|
||||
* @param string $role
|
||||
* @param string $timeZone
|
||||
* @param string $colorId
|
||||
* @param bool $selected
|
||||
* @param bool $primary
|
||||
*/
|
||||
public function __construct($id, $summary, $role, $timeZone, $colorId, $selected = false, $primary = false)
|
||||
{
|
||||
$this->id = $id;
|
||||
$this->summary = $summary;
|
||||
if ($role !== self::ROLE_FREEBUSYREADER && $role !== self::ROLE_READER && $role !== self::ROLE_OWNER) {
|
||||
throw new InvalidArgumentException('Invalid calendar Role.');
|
||||
}
|
||||
$this->role = $role;
|
||||
$this->timeZone = $timeZone;
|
||||
$this->colorId = $colorId;
|
||||
$this->selected = $selected;
|
||||
$this->primary = $primary;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $data
|
||||
*
|
||||
* @return GoogleCalendarListItem
|
||||
*/
|
||||
public static function fromArray($data)
|
||||
{
|
||||
if (!isset($data['kind']) || $data['kind'] !== self::$kind) {
|
||||
throw new InvalidArgumentException('Invalid resource type. Expected: calendar#event');
|
||||
}
|
||||
if (!isset($data['id'])) {
|
||||
throw new InvalidArgumentException('Missing required resorce field "id".');
|
||||
}
|
||||
$id = $data['id'];
|
||||
$summary = $data['summary'];
|
||||
$role = $data['accessRole'];
|
||||
$timeZone = $data['timeZone'];
|
||||
$colorId = $data['colorId'];
|
||||
$selected = (isset($data['selected']) && $data['selected'] === true);
|
||||
$primary = (isset($data['primary']) && $data['primary'] === true);
|
||||
|
||||
return new self($id, $summary, $role, $timeZone, $colorId, $selected, $primary);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getSummary()
|
||||
{
|
||||
return $this->summary;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getRole()
|
||||
{
|
||||
return $this->role;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getTimeZone()
|
||||
{
|
||||
return $this->timeZone;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getColorId()
|
||||
{
|
||||
return $this->colorId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isSelected()
|
||||
{
|
||||
return $this->selected;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isPrimary()
|
||||
{
|
||||
return $this->primary;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user