startList() abstract public method

Start list.
abstract public startList ( string $name )
$name string
 /**
  * @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');
 }
Example #4
0
 /**
  * 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');
 }
Example #5
0
 /**
  * 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');
 }
Example #11
0
 /**
  * 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');
 }
Example #12
0
 /**
  * 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');
 }
Example #13
0
 /**
  * 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');
 }
Example #22
0
 /**
  * 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');
 }
Example #23
0
 /**
  * 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');
 }
Example #24
0
 /**
  * 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');
 }