/** * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param mixed $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $visitor->setHeader('Content-Type', $generator->getMediaType('ContentList')); if (empty($data->contents)) { $visitor->setStatus(204); return; } $generator->startObjectElement('contentList'); $generator->startList('content'); foreach ($data->contents as $content) { $generator->startObjectElement('content'); $generator->startValueElement('contentId', $content['contentId']); $generator->endValueElement('contentId'); $generator->startValueElement('contentTypeId', $content['contentTypeId']); $generator->endValueElement('contentTypeId'); $generator->startValueElement('identifier', $content['identifier']); $generator->endValueElement('identifier'); $generator->startValueElement('language', $content['language']); $generator->endValueElement('language'); $generator->startValueElement('publishedDate', $content['publishedDate']); $generator->endValueElement('publishedDate'); $generator->startValueElement('author', $content['author']); $generator->endValueElement('author'); $generator->startValueElement('uri', $content['uri']); $generator->endValueElement('uri'); $generator->startValueElement('categoryPath', $content['categoryPath']); $generator->endValueElement('categoryPath'); $generator->startObjectElement('mainLocation'); $generator->startAttribute('href', $content['mainLocation']['href']); $generator->endAttribute('href'); $generator->endObjectElement('mainLocation'); $generator->startObjectElement('locations'); $generator->startAttribute('href', $content['locations']['href']); $generator->endAttribute('href'); $generator->endObjectElement('locations'); $generator->startList('fields'); foreach ($content['fields'] as $field) { $generator->startHashElement('fields'); $generator->startValueElement('key', $field['key']); $generator->endValueElement('key'); $generator->startValueElement('value', $field['value']); $generator->endValueElement('value'); $generator->endHashElement('fields'); } $generator->endList('fields'); $generator->endObjectElement('content'); } $generator->endList('content'); $generator->endObjectElement('contentList'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Exceptions\ContentFieldValidationException $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('ErrorMessage'); $statusCode = $this->getStatus(); $visitor->setStatus($statusCode); $visitor->setHeader('Content-Type', $generator->getMediaType('ErrorMessage')); $generator->startValueElement('errorCode', $statusCode); $generator->endValueElement('errorCode'); $generator->startValueElement('errorMessage', $this->httpStatusCodes[$statusCode]); $generator->endValueElement('errorMessage'); $generator->startValueElement('errorDescription', $data->getMessage()); $generator->endValueElement('errorDescription'); $generator->startHashElement('errorDetails'); $generator->startList('fields'); foreach ($data->getFieldErrors() as $fieldTypeId => $translations) { foreach ($translations as $languageCode => $validationErrors) { if (!is_array($validationErrors)) { $validationErrors = [$validationErrors]; } foreach ($validationErrors as $validationError) { $generator->startHashElement('field'); $generator->startAttribute('fieldTypeId', $fieldTypeId); $generator->endAttribute('fieldTypeId'); $generator->startList('errors'); $generator->startHashElement('error'); $generator->startValueElement('type', $validationError->getTarget()); $generator->endValueElement('type'); $translation = $validationError->getTranslatableMessage(); $generator->startValueElement('message', $this->translator->trans($this->translationToString($translation), $translation->values, 'repository_exceptions')); $generator->endValueElement('message'); $generator->endHashElement('error'); $generator->endList('errors'); $generator->endHashElement('field'); } } } $generator->endList('fields'); $generator->endHashElement('errorDetails'); if ($this->debug) { $generator->startValueElement('trace', $data->getTraceAsString()); $generator->endValueElement('trace'); $generator->startValueElement('file', $data->getFile()); $generator->endValueElement('file'); $generator->startValueElement('line', $data->getLine()); $generator->endValueElement('line'); } $generator->endObjectElement('ErrorMessage'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\UserGroupRefList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('UserGroupRefList'); $visitor->setHeader('Content-Type', $generator->getMediaType('UserGroupRefList')); //@todo Needs refactoring, disabling certain headers should not be done this way $visitor->setHeader('Accept-Patch', false); $generator->startAttribute('href', $data->path); $generator->endAttribute('href'); $groupCount = count($data->userGroups); $generator->startList('UserGroup'); foreach ($data->userGroups as $userGroup) { $generator->startObjectElement('UserGroup'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUserGroup', array('groupPath' => trim($userGroup->mainLocation->pathString, '/')))); $generator->endAttribute('href'); if ($data->userId !== null && $groupCount > 1) { $generator->startHashElement('unassign'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_unassignUserFromUserGroup', array('userId' => $data->userId, 'groupPath' => $userGroup->mainLocation->path[count($userGroup->mainLocation->path) - 1]))); $generator->endAttribute('href'); $generator->startAttribute('method', 'DELETE'); $generator->endAttribute('method'); $generator->endHashElement('unassign'); } $generator->endObjectElement('UserGroup'); } $generator->endList('UserGroup'); $generator->endObjectElement('UserGroupRefList'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\API\Repository\Values\User\Policy $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('Policy'); $visitor->setHeader('Content-Type', $generator->getMediaType('Policy')); $visitor->setHeader('Accept-Patch', $generator->getMediaType('PolicyUpdate')); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadPolicy', array('roleId' => $data->roleId, 'policyId' => $data->id))); $generator->endAttribute('href'); $generator->startValueElement('id', $data->id); $generator->endValueElement('id'); $generator->startValueElement('module', $data->module); $generator->endValueElement('module'); $generator->startValueElement('function', $data->function); $generator->endValueElement('function'); $limitations = $data->getLimitations(); if (!empty($limitations)) { $generator->startHashElement('limitations'); $generator->startList('limitation'); foreach ($limitations as $limitation) { $this->visitLimitation($generator, $limitation); } $generator->endList('limitation'); $generator->endHashElement('limitations'); } $generator->endObjectElement('Policy'); }
/** * Visit struct returned by controllers * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\Version $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $content = $data->content; $versionInfo = $content->getVersionInfo(); $contentType = $data->contentType; $generator->startObjectElement('Version'); $visitor->setHeader('Content-Type', $generator->getMediaType('Version')); $visitor->setHeader('Accept-Patch', $generator->getMediaType('VersionUpdate')); $path = $data->path; if ($path == null) { $path = $this->router->generate('ezpublish_rest_loadContentInVersion', array('contentId' => $content->id, 'versionNumber' => $versionInfo->versionNo)); } $generator->startAttribute('href', $path); $generator->endAttribute('href'); $visitor->visitValueObject($versionInfo); $generator->startHashElement('Fields'); $generator->startList('field'); foreach ($content->getFields() as $field) { $this->visitField($generator, $contentType, $field); } $generator->endList('field'); $generator->endHashElement('Fields'); $visitor->visitValueObject(new RelationListValue($data->relations, $content->id, $versionInfo->versionNo)); $generator->endObjectElement('Version'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\ContentTypeGroupRefList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('ContentTypeGroupRefList'); $visitor->setHeader('Content-Type', $generator->getMediaType('ContentTypeGroupRefList')); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_listContentTypesForGroup', array('contentTypeGroupId' => $data->contentType->id))); $generator->endAttribute('href'); $groupCount = count($data->contentTypeGroups); $generator->startList('ContentTypeGroupRef'); foreach ($data->contentTypeGroups as $contentTypeGroup) { $generator->startObjectElement('ContentTypeGroupRef', 'ContentTypeGroup'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentTypeGroup', array('contentTypeGroupId' => $contentTypeGroup->id))); $generator->endAttribute('href'); // Unlinking last group is not allowed if ($groupCount > 1) { $generator->startHashElement('unlink'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_unlinkContentTypeFromGroup', array('contentTypeId' => $data->contentType->id, 'contentTypeGroupId' => $contentTypeGroup->id))); $generator->endAttribute('href'); $generator->startAttribute('method', 'DELETE'); $generator->endAttribute('method'); $generator->endHashElement('unlink'); } $generator->endObjectElement('ContentTypeGroupRef'); } $generator->endList('ContentTypeGroupRef'); $generator->endObjectElement('ContentTypeGroupRefList'); }
/** * Visit struct returned by controllers * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param mixed $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('ObjectStateCreate'); $visitor->setHeader('Content-Type', $generator->getMediaType('ObjectStateCreate')); $generator->startValueElement('identifier', $data->identifier); $generator->endValueElement('identifier'); $generator->startValueElement('priority', $data->priority); $generator->endValueElement('priority'); $generator->startValueElement('defaultLanguageCode', $data->defaultLanguageCode); $generator->endValueElement('defaultLanguageCode'); $generator->startHashElement('names'); $generator->startList('value'); foreach ($data->names as $languageCode => $name) { $generator->startValueElement('value', $name, array('languageCode' => $languageCode)); $generator->endValueElement('value'); } $generator->endList('value'); $generator->endHashElement('names'); $generator->startHashElement('descriptions'); foreach ($data->descriptions as $languageCode => $description) { $generator->startValueElement('value', $description, array('languageCode' => $languageCode)); $generator->endValueElement('value'); } $generator->endHashElement('descriptions'); $generator->endObjectElement('ObjectStateCreate'); }
/** * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param array $contentList * * @return Generator */ public function generateElement(Generator $generator, array $contentList = []) { $generator->startObjectElement('contentList'); $generator->startList('content'); foreach ($contentList as $content) { $generator->startObjectElement('content'); $generator->startValueElement('contentId', $content['contentId']); $generator->endValueElement('contentId'); $generator->startValueElement('contentTypeId', $content['contentTypeId']); $generator->endValueElement('contentTypeId'); $generator->startValueElement('identifier', $content['identifier']); $generator->endValueElement('identifier'); $generator->startValueElement('language', $content['language']); $generator->endValueElement('language'); $generator->startValueElement('publishedDate', $content['publishedDate']); $generator->endValueElement('publishedDate'); $generator->startValueElement('author', $content['author']); $generator->endValueElement('author'); $generator->startValueElement('uri', $content['uri']); $generator->endValueElement('uri'); $generator->startValueElement('categoryPath', $content['categoryPath']); $generator->endValueElement('categoryPath'); $generator->startObjectElement('mainLocation'); $generator->startAttribute('href', $content['mainLocation']['href']); $generator->endAttribute('href'); $generator->endObjectElement('mainLocation'); $generator->startObjectElement('locations'); $generator->startAttribute('href', $content['locations']['href']); $generator->endAttribute('href'); $generator->endObjectElement('locations'); $generator->startList('fields'); foreach ($content['fields'] as $field) { $generator->startHashElement('fields'); $generator->startValueElement('key', $field['key']); $generator->endValueElement('key'); $generator->startValueElement('value', $field['value']); $generator->endValueElement('value'); $generator->endHashElement('fields'); } $generator->endList('fields'); $generator->endObjectElement('content'); } $generator->endList('content'); $generator->endObjectElement('contentList'); return $generator; }
/** * @param Visitor $visitor * @param Generator $generator * @param \eZ\Publish\API\Repository\Values\Content\Query\Criterion\ContentTypeIdentifier $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $contentTypeIdentifiers = is_array($data->value) ? $data->value : [$data->value]; $generator->startList('ContentTypeIdentifierCriterion'); foreach ($contentTypeIdentifiers as $contentTypeIdentifier) { $generator->startValueElement('ContentTypeIdentifierCriterion', $contentTypeIdentifier); $generator->endValueElement('ContentTypeIdentifierCriterion'); } $generator->endList('ContentTypeIdentifierCriterion'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\RoleAssignmentList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('RoleAssignmentList'); $visitor->setHeader('Content-Type', $generator->getMediaType('RoleAssignmentList')); $generator->startAttribute('href', $data->isGroupAssignment ? $this->router->generate('ezpublish_rest_loadRoleAssignmentsForUserGroup', array('groupPath' => $data->id)) : $this->router->generate('ezpublish_rest_loadRoleAssignmentsForUser', array('userId' => $data->id))); $generator->endAttribute('href'); $generator->startList('RoleAssignment'); foreach ($data->roleAssignments as $roleAssignment) { $visitor->visitValueObject($data->isGroupAssignment ? new Values\RestUserGroupRoleAssignment($roleAssignment, $data->id) : new Values\RestUserRoleAssignment($roleAssignment, $data->id)); } $generator->endList('RoleAssignment'); $generator->endObjectElement('RoleAssignmentList'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\URLAliasList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('UrlAliasList'); $visitor->setHeader('Content-Type', $generator->getMediaType('UrlAliasList')); $generator->startAttribute('href', $data->path); $generator->endAttribute('href'); $generator->startList('UrlAlias'); foreach ($data->urlAliases as $urlAlias) { $visitor->visitValueObject($urlAlias); } $generator->endList('UrlAlias'); $generator->endObjectElement('UrlAliasList'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\Trash $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('Trash'); $visitor->setHeader('Content-Type', $generator->getMediaType('Trash')); $generator->startAttribute('href', $data->path); $generator->endAttribute('href'); $generator->startList('TrashItem'); foreach ($data->trashItems as $trashItem) { $visitor->visitValueObject($trashItem); } $generator->endList('TrashItem'); $generator->endObjectElement('Trash'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\URLWildcardList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('UrlWildcardList'); $visitor->setHeader('Content-Type', $generator->getMediaType('UrlWildcardList')); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_listURLWildcards')); $generator->endAttribute('href'); $generator->startList('UrlWildcard'); foreach ($data->urlWildcards as $urlWildcard) { $visitor->visitValueObject($urlWildcard); } $generator->endList('UrlWildcard'); $generator->endObjectElement('UrlWildcardList'); }
/** * Visit struct returned by controllers * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param mixed $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('ContentObjectStates'); $visitor->setHeader('Content-Type', $generator->getMediaType('ContentObjectStates')); $generator->startList('ObjectState'); foreach ($data->states as $state) { $generator->startObjectElement('ObjectState'); $generator->startAttribute('href', $this->requestParser->generate('objectstate', array('objectstategroup' => $state->groupId, 'objectstate' => $state->objectState->id))); $generator->endAttribute('href'); $generator->endObjectElement('ObjectState'); } $generator->endList('ObjectState'); $generator->endObjectElement('ContentObjectStates'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\RestExecutedView $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('View'); $visitor->setHeader('Content-Type', $generator->getMediaType('View')); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_views_load', array('viewId' => $data->identifier))); $generator->endAttribute('href'); $generator->startValueElement('identifier', $data->identifier); $generator->endValueElement('identifier'); // BEGIN Query $generator->startObjectElement('Query'); $generator->endObjectElement('Query'); // END Query // BEGIN Result $generator->startObjectElement('Result', 'ViewResult'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_views_load_results', array('viewId' => $data->identifier))); $generator->endAttribute('href'); // BEGIN searchHits $generator->startHashElement('searchHits'); $generator->startList('searchHit'); foreach ($data->searchResults->searchHits as $searchHit) { $generator->startObjectElement('searchHit'); $generator->startAttribute('score', 0); $generator->endAttribute('score'); $generator->startAttribute('index', 0); $generator->endAttribute('index'); $generator->startObjectElement('value'); // @todo Refactor if ($searchHit->valueObject instanceof ApiValues\Content) { /** @var \eZ\Publish\API\Repository\Values\Content\ContentInfo $contentInfo */ $contentInfo = $searchHit->valueObject->contentInfo; $valueObject = new RestContentValue($contentInfo, $this->locationService->loadLocation($contentInfo->mainLocationId), $searchHit->valueObject, $this->contentTypeService->loadContentType($contentInfo->contentTypeId), $this->contentService->loadRelations($searchHit->valueObject->getVersionInfo())); } elseif ($searchHit->valueObject instanceof ApiValues\Location) { $valueObject = $searchHit->valueObject; } elseif ($searchHit->valueObject instanceof ApiValues\ContentInfo) { $valueObject = new RestContentValue($searchHit->valueObject); } else { throw new Exceptions\InvalidArgumentException('Unhandled object type'); } $visitor->visitValueObject($valueObject); $generator->endObjectElement('value'); $generator->endObjectElement('searchHit'); } $generator->endList('searchHit'); $generator->endHashElement('searchHits'); // END searchHits $generator->endObjectElement('Result'); // END Result $generator->endObjectElement('View'); }
/** * Visit struct returned by controllers * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\ContentList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('ContentList'); $visitor->setHeader('Content-Type', $generator->getMediaType('ContentList')); //@todo Needs refactoring, disabling certain headers should not be done this way $visitor->setHeader('Accept-Patch', false); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_redirectContent')); $generator->endAttribute('href'); $generator->startList('ContentInfo'); foreach ($data->contents as $content) { $visitor->visitValueObject($content); } $generator->endList('ContentInfo'); $generator->endObjectElement('ContentList'); }
/** * Visit struct returned by controllers * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\ObjectStateList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('ObjectStateList'); $visitor->setHeader('Content-Type', $generator->getMediaType('ObjectStateList')); //@todo Needs refactoring, disabling certain headers should not be done this way $visitor->setHeader('Accept-Patch', false); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadObjectStates', array('objectStateGroupId' => $data->groupId))); $generator->endAttribute('href'); $generator->startList('ObjectState'); foreach ($data->states as $state) { $visitor->visitValueObject(new RestObjectStateValue($state, $data->groupId)); } $generator->endList('ObjectState'); $generator->endObjectElement('ObjectStateList'); }
/** * Visit struct returned by controllers * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\ContentTypeInfoList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('ContentTypeInfoList'); $visitor->setHeader('Content-Type', $generator->getMediaType('ContentTypeInfoList')); //@todo Needs refactoring, disabling certain headers should not be done this way $visitor->setHeader('Accept-Patch', false); $generator->startAttribute('href', $data->path); $generator->endAttribute('href'); $generator->startList('ContentType'); foreach ($data->contentTypes as $contentType) { $visitor->visitValueObject(new Values\RestContentType($contentType)); } $generator->endList('ContentType'); $generator->endObjectElement('ContentTypeInfoList'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Common\Values\ContentObjectStates $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('ContentObjectStates'); $visitor->setHeader('Content-Type', $generator->getMediaType('ContentObjectStates')); $visitor->setHeader('Accept-Patch', $generator->getMediaType('ContentObjectStates')); $generator->startList('ObjectState'); foreach ($data->states as $state) { $generator->startObjectElement('ObjectState'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadObjectState', array('objectStateGroupId' => $state->groupId, 'objectStateId' => $state->objectState->id))); $generator->endAttribute('href'); $generator->endObjectElement('ObjectState'); } $generator->endList('ObjectState'); $generator->endObjectElement('ContentObjectStates'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\URLAliasRefList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('UrlAliasRefList'); $visitor->setHeader('Content-Type', $generator->getMediaType('UrlAliasRefList')); $generator->startAttribute('href', $data->path); $generator->endAttribute('href'); $generator->startList('UrlAlias'); foreach ($data->urlAliases as $urlAlias) { $generator->startObjectElement('UrlAlias'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadURLAlias', array('urlAliasId' => $urlAlias->id))); $generator->endAttribute('href'); $generator->endObjectElement('UrlAlias'); } $generator->endList('UrlAlias'); $generator->endObjectElement('UrlAliasRefList'); }
/** * Visit struct returned by controllers * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param mixed $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('PolicyUpdate'); $visitor->setHeader('Content-Type', $generator->getMediaType('PolicyUpdate')); $limitations = $data->getLimitations(); if (!empty($limitations)) { $generator->startObjectElement('limitations'); $generator->startList('limitations'); foreach ($limitations as $limitation) { $visitor->visitValueObject($limitation); } $generator->endList('limitations'); $generator->endObjectElement('limitations'); } $generator->endObjectElement('PolicyUpdate'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\LocationList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('LocationList'); $visitor->setHeader('Content-Type', $generator->getMediaType('LocationList')); $generator->startAttribute('href', $data->path); $generator->endAttribute('href'); $generator->startList('Location'); foreach ($data->locations as $restLocation) { $generator->startObjectElement('Location'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => trim($restLocation->location->pathString, '/')))); $generator->endAttribute('href'); $generator->endObjectElement('Location'); } $generator->endList('Location'); $generator->endObjectElement('LocationList'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \Netgen\TagsBundle\Core\REST\Server\Values\TagList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('TagList'); $visitor->setHeader('Content-Type', $generator->getMediaType('TagList')); $generator->startAttribute('href', $data->path); $generator->endAttribute('href'); $generator->startList('Tag'); foreach ($data->tags as $restTag) { $generator->startObjectElement('Tag'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_eztags_loadTag', array('tagPath' => trim($restTag->tag->pathString, '/')))); $generator->endAttribute('href'); $generator->endObjectElement('Tag'); } $generator->endList('Tag'); $generator->endObjectElement('TagList'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\RelationList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('Relations', 'RelationList'); $visitor->setHeader('Content-Type', $generator->getMediaType('RelationList')); $path = $data->path; if ($path === null) { $path = $this->router->generate('ezpublish_rest_loadVersionRelations', array('contentId' => $data->contentId, 'versionNumber' => $data->versionNo)); } $generator->startAttribute('href', $path); $generator->endAttribute('href'); $generator->startList('Relation'); foreach ($data->relations as $relation) { $visitor->visitValueObject(new ValuesRestRelation($relation, $data->contentId, $data->versionNo)); } $generator->endList('Relation'); $generator->endObjectElement('Relations'); }
/** * Visit struct returned by controllers * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param mixed $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('limitation'); $generator->startAttribute('identifier', $data->getIdentifier()); $generator->endAttribute('identifier'); $generator->startObjectElement('values'); $generator->startList('values'); foreach ($data->limitationValues as $limitationValue) { $generator->startObjectElement('ref'); $generator->startAttribute('href', $limitationValue); $generator->endAttribute('href'); $generator->endObjectElement('ref'); } $generator->endList('values'); $generator->endObjectElement('values'); $generator->endObjectElement('limitation'); }
/** * Visit struct returned by controllers * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\FieldDefinitionList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $fieldDefinitionList = $data; $contentType = $fieldDefinitionList->contentType; $urlTypeSuffix = $this->getUrlTypeSuffix($contentType->status); $generator->startObjectElement('FieldDefinitions', 'FieldDefinitionList'); $visitor->setHeader('Content-Type', $generator->getMediaType('FieldDefinitionList')); //@todo Needs refactoring, disabling certain headers should not be done this way $visitor->setHeader('Accept-Patch', false); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentType' . $urlTypeSuffix . 'FieldDefinitionList', array('contentTypeId' => $contentType->id))); $generator->endAttribute('href'); $generator->startList('FieldDefinition'); foreach ($fieldDefinitionList->fieldDefinitions as $fieldDefinition) { $visitor->visitValueObject(new ValuesRestFieldDefinition($contentType, $fieldDefinition)); } $generator->endList('FieldDefinition'); $generator->endObjectElement('FieldDefinitions'); }
/** * Visit struct returned by controllers * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\UserRefList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('UserRefList'); $visitor->setHeader('Content-Type', $generator->getMediaType('UserRefList')); //@todo Needs refactoring, disabling certain headers should not be done this way $visitor->setHeader('Accept-Patch', false); $generator->startAttribute('href', $data->path); $generator->endAttribute('href'); $generator->startList('User'); foreach ($data->users as $user) { $generator->startObjectElement('User'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $user->contentInfo->id))); $generator->endAttribute('href'); $generator->endObjectElement('User'); } $generator->endList('User'); $generator->endObjectElement('UserRefList'); }
/** * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Client\Values\Content\VersionUpdate $versionUpdate */ public function visit(Visitor $visitor, Generator $generator, $versionUpdate) { $updateStruct = $versionUpdate->contentUpdateStruct; $generator->startObjectElement('VersionUpdate'); $visitor->setHeader('Content-Type', $generator->getMediaType('VersionUpdate')); $generator->startValueElement('initialLanguageCode', $updateStruct->initialLanguageCode); $generator->endValueElement('initialLanguageCode'); if (is_array($updateStruct->fields) && count($updateStruct->fields) > 0) { $generator->startHashElement('fields'); $generator->startList('field'); foreach ($updateStruct->fields as $field) { $this->visitField($generator, $versionUpdate->contentType, $field); } $generator->endList('field'); $generator->endHashElement('fields'); } $generator->endObjectElement('VersionUpdate'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\VersionList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('VersionList'); $visitor->setHeader('Content-Type', $generator->getMediaType('VersionList')); //@todo Needs refactoring, disabling certain headers should not be done this way $visitor->setHeader('Accept-Patch', false); $generator->startAttribute('href', $data->path); $generator->endAttribute('href'); $generator->startList('VersionItem'); foreach ($data->versions as $version) { $generator->startHashElement('VersionItem'); $generator->startObjectElement('Version'); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentInVersion', array('contentId' => $version->getContentInfo()->id, 'versionNumber' => $version->versionNo))); $generator->endAttribute('href'); $generator->endObjectElement('Version'); $visitor->visitValueObject($version); $generator->endHashElement('VersionItem'); } $generator->endList('VersionItem'); $generator->endObjectElement('VersionList'); }
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Values\CountryList $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('CountryList'); $visitor->setHeader('Content-Type', $generator->getMediaType('CountryList')); $visitor->setHeader('Accept-Patch', false); $generator->startList('Country'); foreach ($data->countries as $country) { $generator->startObjectElement('Country', 'Country'); $generator->startAttribute('id', $country['Alpha2']); $generator->endAttribute('id'); $generator->startValueElement('name', $country['Name']); $generator->endValueElement('name'); $generator->startValueElement('Alpha2', $country['Alpha2']); $generator->endValueElement('Alpha2'); $generator->startValueElement('Alpha3', $country['Alpha3']); $generator->endValueElement('Alpha3'); $generator->startValueElement('IDC', $country['IDC']); $generator->endValueElement('IDC'); $generator->endObjectElement('Country'); } $generator->endList('Country'); $generator->endObjectElement('CountryList'); }