예제 #1
0
 /**
  * @param int           $calendarId
  * @param AbstractQuery $query
  *
  * @return array
  */
 public function getTasks($calendarId, AbstractQuery $query)
 {
     $result = [];
     $items = $query->getArrayResult();
     foreach ($items as $item) {
         /** @var \DateTime $start */
         $start = $item['dueDate'];
         $end = clone $start;
         $end = $end->add(new \DateInterval('PT30M'));
         $result[] = ['calendar' => $calendarId, 'id' => $item['id'], 'title' => $item['subject'], 'description' => $item['description'], 'start' => $start->format('c'), 'end' => $end->format('c'), 'allDay' => false, 'createdAt' => $item['createdAt']->format('c'), 'updatedAt' => $item['updatedAt']->format('c'), 'editable' => false, 'removable' => false];
     }
     $this->reminderManager->applyReminders($result, 'OroCRM\\Bundle\\TaskBundle\\Entity\\Task');
     return $result;
 }
 /**
  * Converts calendar events returned by the given query to form that can be used in API
  *
  * @param int           $calendarId The target calendar id
  * @param AbstractQuery $query      The query that should be used to get events
  *
  * @return array
  */
 public function getCalendarEvents($calendarId, AbstractQuery $query)
 {
     $result = [];
     $rawData = $query->getArrayResult();
     foreach ($rawData as $rawDataItem) {
         $result[] = $this->transformEntity($rawDataItem);
     }
     $this->applyAdditionalData($result, $calendarId);
     foreach ($result as &$resultItem) {
         $this->applyPermissions($resultItem, $calendarId);
     }
     $this->reminderManager->applyReminders($result, 'Oro\\Bundle\\CalendarBundle\\Entity\\CalendarEvent');
     return $result;
 }