/** * {@inheritDoc} */ public function find($privateUri, $userId) { if (!array_key_exists($privateUri, $this->uris)) { throw new BackendUtils\DoesNotExistException($privateUri . 'does not exist!'); } return $this->factory->createEntity(['userId' => $userId, 'ownerId' => $userId, 'backend' => $this->backend, 'privateUri' => $privateUri, 'components' => ObjectType::EVENT, 'cruds' => Permissions::READ + Permissions::SHARE, 'color' => 'rgba(77,87,100,0.75)', 'order' => 0, 'enabled' => true, 'displayname' => $this->generateDisplayname($privateUri), 'ctag' => $this->generateCTag()], CalendarFactory::FORMAT_PARAM); }
/** * {@inheritDoc} */ public function formatItems($items, $format, $parameters = null) { $entities = []; foreach ($items as $item) { if (substr_count($item['item_source'], '::') === 0) { return false; } list($calendarId, $objectUri) = explode('::', $item['item_source'], 1); $ownerId = $item['uid_owner']; if ($format === Types::GROUPED) { if (!isset($entities[$ownerId])) { $calendar = $this->factory->createEntity(['backend' => $this->sharingBackend, 'cruds' => Permissions::READ, 'privateUri' => 'objects::' . $ownerId, 'userId' => $item['share_with'], 'ownerId' => $ownerId, 'displayname' => strval($this->l10n->t('%s\'s events', [$ownerId])), 'color' => 'rgb(107, 107, 107)', 'components' => ObjectType::EVENT, 'enabled' => false, 'ctag' => 0], CalendarFactory::FORMAT_PARAM); $entities[$ownerId] = ['calendar' => $calendar, 'ctag' => 0, 'objects' => []]; } /** @var \OCA\Calendar\ICalendar $calendar */ $calendar = $entities[$ownerId]['calendar']; $calendar->setCtag(max($calendar->getCtag(), $item['stime'])); $entities[$ownerId]['objects'] = ['calendarId' => $calendarId, 'objectUri' => $objectUri, 'shareItem' => $item]; } elseif ($format === Types::GROUPEDLIST) { $privateUri = 'object::' . $ownerId; if (!in_array($privateUri, $entities)) { $entities[] = $privateUri; } } } return $entities; }
/** * @param array $row * @return ICalendar */ private function rowToEntity(array $row) { return $this->factory->createEntity(['userId' => strval($row['userid']), 'ownerId' => strval($row['userid']), 'backend' => $this->backend, 'privateUri' => strval($row['uri']), 'displayname' => strval($row['displayname']), 'components' => $this->getTypes($row['components'], 'int'), 'ctag' => intval($row['ctag']), 'color' => strval($row['calendarcolor']), 'order' => intval($row['calendarorder']), 'enabled' => (bool) $row['active'], 'cruds' => Permissions::ALL]); }