getId(); } public function getAttributes($resource, ContextInterface $context): iterable { $attributes = [ 'name' => $resource['name'], 'mime-type' => $resource['mime_type'], 'filesize' => (int) $resource['size'], 'mkdate' => date('c', $resource['mkdate']), 'chdate' => date('c', $resource['chdate']), ]; if ($resource['metadata']['url']) { if (FilesAuthority::canUpdateFile($this->currentUser, $resource)) { $attributes['url'] = $resource['metadata']['url']; } } return $attributes; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function getRelationships($resource, ContextInterface $context): iterable { $isPrimary = $context->getPosition()->getLevel() === 0; $relationships = []; if ($isPrimary) { $relationships = $this->addOwnerRelationship($relationships, $resource); $relationships = $this->addFileRefsRelationship($relationships, $resource); } return $relationships; } private function addFileRefsRelationship(array $relationships, \File $resource) { $refs = $resource->refs; $relationships[self::REL_FILE_REFS] = [ self::RELATIONSHIP_LINKS_SELF => true, self::RELATIONSHIP_DATA => $refs, ]; return $relationships; } private function addOwnerRelationship(array $relationships, \File $resource) { if ($resource->user_id) { $relationships[self::REL_OWNER] = [ self::RELATIONSHIP_LINKS => [ Link::RELATED => $this->createLinkToResource($resource->owner), ], ]; } return $relationships; } }