diff options
Diffstat (limited to 'vendor/sabre/vobject/lib/Component/VFreeBusy.php')
-rw-r--r-- | vendor/sabre/vobject/lib/Component/VFreeBusy.php | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/vendor/sabre/vobject/lib/Component/VFreeBusy.php b/vendor/sabre/vobject/lib/Component/VFreeBusy.php index 558a85233..72294cc9f 100644 --- a/vendor/sabre/vobject/lib/Component/VFreeBusy.php +++ b/vendor/sabre/vobject/lib/Component/VFreeBusy.php @@ -15,8 +15,8 @@ use Sabre\VObject; * @author Evert Pot (http://evertpot.com/) * @license http://sabre.io/license/ Modified BSD License */ -class VFreeBusy extends VObject\Component -{ +class VFreeBusy extends VObject\Component { + /** * Checks based on the contained FREEBUSY information, if a timeslot is * available. @@ -26,18 +26,19 @@ class VFreeBusy extends VObject\Component * * @return bool */ - public function isFree(DateTimeInterface $start, DatetimeInterface $end) - { + function isFree(DateTimeInterface $start, DatetimeInterface $end) { + foreach ($this->select('FREEBUSY') as $freebusy) { + // We are only interested in FBTYPE=BUSY (the default), // FBTYPE=BUSY-TENTATIVE or FBTYPE=BUSY-UNAVAILABLE. - if (isset($freebusy['FBTYPE']) && 'BUSY' !== strtoupper(substr((string) $freebusy['FBTYPE'], 0, 4))) { + if (isset($freebusy['FBTYPE']) && strtoupper(substr((string)$freebusy['FBTYPE'], 0, 4)) !== 'BUSY') { continue; } // The freebusy component can hold more than 1 value, separated by // commas. - $periods = explode(',', (string) $freebusy); + $periods = explode(',', (string)$freebusy); foreach ($periods as $period) { // Every period is formatted as [start]/[end]. The start is an @@ -54,10 +55,13 @@ class VFreeBusy extends VObject\Component if ($start < $busyEnd && $end > $busyStart) { return false; } + } + } return true; + } /** @@ -75,22 +79,24 @@ class VFreeBusy extends VObject\Component * * @var array */ - public function getValidationRules() - { + function getValidationRules() { + return [ - 'UID' => 1, + 'UID' => 1, 'DTSTAMP' => 1, - 'CONTACT' => '?', - 'DTSTART' => '?', - 'DTEND' => '?', + 'CONTACT' => '?', + 'DTSTART' => '?', + 'DTEND' => '?', 'ORGANIZER' => '?', - 'URL' => '?', + 'URL' => '?', - 'ATTENDEE' => '*', - 'COMMENT' => '*', - 'FREEBUSY' => '*', + 'ATTENDEE' => '*', + 'COMMENT' => '*', + 'FREEBUSY' => '*', 'REQUEST-STATUS' => '*', ]; + } + } |