/** * @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; }