diff options
Diffstat (limited to 'app/php/facades/EventFacade.php')
-rw-r--r-- | app/php/facades/EventFacade.php | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/app/php/facades/EventFacade.php b/app/php/facades/EventFacade.php deleted file mode 100644 index 14f809d..0000000 --- a/app/php/facades/EventFacade.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php - -Prado::using('Application.facades.Facade'); -Prado::using('Application.dto.EventDTO'); -Prado::using('Application.dto.TimezoneDTO'); -Prado::using('Application.dto.GridEventDTO'); -Prado::using('Application.dto.CalendarGridDTO'); -Prado::using('Application.model.Calendar'); -Prado::using('Application.facades.CalendarFacade'); -Prado::using('Application.user.DbUser'); - -class EventFacade extends Facade { - - public function getEventList(string $dateFrom=NULL, string $dateTo=NULL, - array $calendars=NULL, string $order='ASC') { - $calendarClause = '1=1'; - if ($calendars) { - $calendarClause = sprintf( - '_calendar IN (%s)', - implode( - ',', - array_map( - function($calendar) { - return $this->quoteString($calendar->UID); - }, - $calendars - ) - ) - ); - } - return $this->fetchList( - 'getEvents', - [ - 'date_from' => $dateFrom ?: '0000-00-00 00:00:00', - 'date_to' => $dateTo ?: '9999-99-99', - 'calendar_clause' => $calendarClause, - 'order_clause' => $order - ] - ); - } - - private function _compileEventObjects(array $events, array $calendars, - TimezoneDTO $tz, - string $class = 'Application.dto.EventDTO') { - return array_map( - function($event) use($calendars, $class, $tz) { - $dto = Prado::createComponent($class, $tz); - $dto->loadRecord($event, $calendars); - return $dto; - }, - $events - ); - } - - public function getTimeframeListForUser( - DbUser $user, - DateTime $dateFrom, DateTime $dateTo, - string $returnClass = 'Application.dto.EventDTO') { - $calendars = CalendarFacade::getInstance()->getCalendarPreference($user); - if ($calendars) { - $events = $this->getEventList( - $dateFrom->format('Y-m-d H:i:s'), - $dateTo->format('Y-m-d H:i:s'), - $calendars - ); - $calendars = $this->_getCalendarsForEvents($events); - return $this->_compileEventObjects( - $events, $calendars, - UserFacade::getInstance()->getTimezonePreference($user), - $returnClass); - } - return []; - } - - public function getCalendarListForUser(DbUser $user, - $month, $year) { - if (!$year) { - $year = intval(date('Y')); - } - if (!$month) { - $month = intval(date('m')); - } - $timezone = $user - ? UserFacade::getInstance()->getTimezonePreference($user) - : new TimezoneDTO(date_default_timezone_get()); - $timeframe = CalendarFacade::getInstance()->getCalendarBoundaries( - $year, $month, $timezone - ); - return new CalendarGridDTO( - $this->getTimeframeListForUser( - $user, - $timeframe[0], $timeframe[1], - 'Application.dto.GridEventDTO' - ), - ...$timeframe - ); - } - - private function _getCalendarsForEvents(array $events) { - if ($events) { - return Calendar::finder()->findAllByPks( - array_map( - function($event) { - return $event->CalendarID; - }, - $events - ) - ); - } - return []; - } - -} - -?> |