/**
  * @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');
 }
 /**
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param mixed $data
  * @return mixed
  * @throws \EzSystems\RecommendationBundle\Rest\Exception\ResponseClassNotImplementedException
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $visitor->setHeader('Content-Type', $generator->getMediaType('ContentList'));
     if (empty($data->contents)) {
         $visitor->setStatus(204);
         return;
     }
     if (!isset($this->responseRenderers[$data->options['responseType']])) {
         throw new ResponseClassNotImplementedException(sprintf('Renderer for %s response not implemented.', $data->options['responseType']));
     }
     return $this->responseRenderers[$data->options['responseType']]->render($generator, $data);
 }
 /**
  * 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');
 }
 /**
  * @param Visitor $visitor
  * @param Generator $generator
  * @param \eZ\Publish\Core\REST\Client\Values\ViewInput $data
  * @throws Exceptions\InvalidArgumentException
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ViewInput');
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     if ($data->locationQuery !== null) {
         $queryElementName = 'locationQuery';
     } elseif ($data->contentQuery !== null) {
         $queryElementName = 'contentQuery';
     } else {
         throw new Exceptions\InvalidArgumentException("ViewInput Query", "No content nor location query found in ViewInput");
     }
     $visitor->visitValueObject($data->{$queryElementName});
     $generator->endObjectElement('ViewInput');
 }
Exemple #5
0
 /**
  * Visits a single content field and generates its content
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param \eZ\Publish\API\Repository\Values\ContentType\ContentType $contentType
  * @param \eZ\Publish\API\Repository\Values\Content\Field $field
  */
 public function visitField(Generator $generator, ContentType $contentType, Field $field)
 {
     $generator->startHashElement('field');
     $generator->startValueElement('id', $field->id);
     $generator->endValueElement('id');
     $generator->startValueElement('fieldDefinitionIdentifier', $field->fieldDefIdentifier);
     $generator->endValueElement('fieldDefinitionIdentifier');
     $generator->startValueElement('languageCode', $field->languageCode);
     $generator->endValueElement('languageCode');
     $this->fieldTypeSerializer->serializeFieldValue($generator, $contentType, $field);
     $generator->endHashElement('field');
 }
 /**
  * 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('SectionInput');
     $visitor->setHeader('Content-Type', $generator->getMediaType('SectionInput'));
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     $generator->startValueElement('name', $data->name);
     $generator->endValueElement('name');
     $generator->endObjectElement('SectionInput');
 }
 /**
  * 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('SessionInput');
     $visitor->setHeader('Content-Type', $generator->getMediaType('SessionInput'));
     $generator->startValueElement('login', $data->login);
     $generator->endValueElement('login');
     $generator->startValueElement('password', $data->password);
     $generator->endValueElement('password');
     $generator->endObjectElement('SessionInput');
 }
Exemple #8
0
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     if ($data instanceof LocationQueryValue) {
         $rootObjectElement = 'LocationQuery';
     } else {
         if ($data instanceof ContentQueryValue) {
             $rootObjectElement = 'ContentQuery';
         } else {
             throw new Exceptions\InvalidArgumentException("ViewInput Query", "No content nor location query found in ViewInput");
         }
     }
     $generator->startObjectElement($rootObjectElement, 'Query');
     if (isset($data->filter)) {
         $generator->startHashElement('Filter');
         $visitor->visitValueObject($data->filter);
         $generator->endHashElement('Filter');
     }
     if (isset($data->query)) {
         $generator->startHashElement('Query');
         $visitor->visitValueObject($data->query);
         $generator->endhashElement('Query');
     }
     // $generator->startObjectElement('SortClauses');
     // foreach ($data->sortClauses as $sortClause) {
     //     $visitor->visitValueObject($sortClause);
     // }
     // $generator->endObjectElement('SortClauses');
     $generator->endObjectElement($rootObjectElement);
 }
 /**
  * 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\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 \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');
 }
Exemple #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');
 }
 /**
  * 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('RoleAssignInput');
     $visitor->setHeader('Content-Type', $generator->getMediaType('RoleAssignInput'));
     $generator->startObjectElement('Role');
     $generator->startAttribute('href', $this->requestParser->generate('role', array('role' => $data->getRole()->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Role');
     $roleLimitation = $data->getRoleLimitation();
     if ($roleLimitation !== null) {
         $visitor->visitValueObject($roleLimitation);
     }
     $generator->endObjectElement('RoleAssignInput');
 }
 /**
  * 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\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 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');
 }
 public function render(Generator $generator, $data)
 {
     ini_set('max_execution_time', 0);
     if (file_exists($data->options['documentRoot'] . '/var/export/.lock')) {
         throw new ExportInProgressException('Export is running');
     }
     $chunkDir = $this->createChunkDir($data->options['documentRoot']);
     $chunkDirPath = $data->options['documentRoot'] . '/var/export' . $chunkDir;
     $chunks = array_chunk($data->contents, $data->options['chunkSize']);
     $urls = [];
     touch($data->options['documentRoot'] . '/var/export/.lock');
     foreach ($chunks as $id => $chunk) {
         $chunkPath = $chunkDirPath . $id;
         $generator->reset();
         $generator->startDocument($chunk);
         $this->contentListElementGenerator->generateElement($generator, $chunk);
         file_put_contents($chunkPath, $generator->endDocument($chunk));
         $urls[] = sprintf('%s/api/ezp/v2/ez_recommendation/v1/exportDownload%s%s', $data->options['host'], $chunkDir, $id);
     }
     unlink($data->options['documentRoot'] . '/var/export/.lock');
     echo $this->sendYCResponse($urls, $data->options, $chunkDirPath);
     $generator->reset();
     return $generator;
 }
 /**
  * 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 \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\RestUserGroupRoleAssignment $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('RoleAssignment');
     $visitor->setHeader('Content-Type', $generator->getMediaType('RoleAssignment'));
     $roleAssignment = $data->roleAssignment;
     $role = $roleAssignment->getRole();
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadRoleAssignmentForUserGroup', array('groupPath' => trim($data->id, '/'), 'roleId' => $role->id)));
     $generator->endAttribute('href');
     $roleLimitation = $roleAssignment->getRoleLimitation();
     if ($roleLimitation instanceof RoleLimitation) {
         $this->visitLimitation($generator, $roleLimitation);
     }
     $generator->startObjectElement('Role');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadRole', array('roleId' => $role->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Role');
     $generator->endObjectElement('RoleAssignment');
 }
 /**
  * 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\RestContentType $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $contentType = $data->contentType;
     $urlTypeSuffix = $this->getUrlTypeSuffix($contentType->status);
     $mediaType = $data->fieldDefinitions !== null ? 'ContentType' : 'ContentTypeInfo';
     $generator->startObjectElement($mediaType);
     $visitor->setHeader('Content-Type', $generator->getMediaType($mediaType));
     if ($contentType->status === APIContentType::STATUS_DRAFT) {
         $visitor->setHeader('Accept-Patch', $generator->getMediaType('ContentTypeUpdate'));
     }
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentType' . $urlTypeSuffix, array('contentTypeId' => $contentType->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('id', $contentType->id);
     $generator->endValueElement('id');
     $generator->startValueElement('status', $this->serializeStatus($contentType->status));
     $generator->endValueElement('status');
     $generator->startValueElement('identifier', $contentType->identifier);
     $generator->endValueElement('identifier');
     $this->visitNamesList($generator, $contentType->getNames());
     $descriptions = $contentType->getDescriptions();
     if (is_array($descriptions)) {
         $this->visitDescriptionsList($generator, $descriptions);
     }
     $generator->startValueElement('creationDate', $contentType->creationDate->format('c'));
     $generator->endValueElement('creationDate');
     $generator->startValueElement('modificationDate', $contentType->modificationDate->format('c'));
     $generator->endValueElement('modificationDate');
     $generator->startObjectElement('Creator', 'User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $contentType->creatorId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Creator');
     $generator->startObjectElement('Modifier', 'User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $contentType->modifierId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Modifier');
     $generator->startObjectElement('Groups', 'ContentTypeGroupRefList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadGroupsOfContentType', array('contentTypeId' => $contentType->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Groups');
     $generator->startObjectElement('Draft', 'ContentType');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentTypeDraft', array('contentTypeId' => $contentType->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Draft');
     $generator->startValueElement('remoteId', $contentType->remoteId);
     $generator->endValueElement('remoteId');
     $generator->startValueElement('urlAliasSchema', $contentType->urlAliasSchema);
     $generator->endValueElement('urlAliasSchema');
     $generator->startValueElement('nameSchema', $contentType->nameSchema);
     $generator->endValueElement('nameSchema');
     $generator->startValueElement('isContainer', $this->serializeBool($generator, $contentType->isContainer));
     $generator->endValueElement('isContainer');
     $generator->startValueElement('mainLanguageCode', $contentType->mainLanguageCode);
     $generator->endValueElement('mainLanguageCode');
     $generator->startValueElement('defaultAlwaysAvailable', $this->serializeBool($generator, $contentType->defaultAlwaysAvailable));
     $generator->endValueElement('defaultAlwaysAvailable');
     $generator->startValueElement('defaultSortField', $this->serializeSortField($contentType->defaultSortField));
     $generator->endValueElement('defaultSortField');
     $generator->startValueElement('defaultSortOrder', $this->serializeSortOrder($contentType->defaultSortOrder));
     $generator->endValueElement('defaultSortOrder');
     if ($data->fieldDefinitions !== null) {
         $visitor->visitValueObject(new Values\FieldDefinitionList($contentType, $data->fieldDefinitions));
     }
     $generator->endObjectElement($mediaType);
 }
 /**
  * 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\ContentType\ContentTypeGroup $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ContentTypeGroup');
     $visitor->setHeader('Content-Type', $generator->getMediaType('ContentTypeGroup'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('ContentTypeGroupInput'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentTypeGroup', array('contentTypeGroupId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('id', $data->id);
     $generator->endValueElement('id');
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     $generator->startValueElement('created', $data->creationDate->format('c'));
     $generator->endValueElement('created');
     $generator->startValueElement('modified', $data->modificationDate->format('c'));
     $generator->endValueElement('modified');
     $generator->startObjectElement('Creator', 'User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $data->creatorId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Creator');
     $generator->startObjectElement('Modifier', 'User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $data->modifierId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Modifier');
     $generator->startObjectElement('ContentTypes', 'ContentTypeInfoList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_listContentTypesForGroup', array('contentTypeGroupId' => $data->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('ContentTypes');
     $generator->endObjectElement('ContentTypeGroup');
 }
 /**
  * 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\Content\URLWildcard $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('UrlWildcard');
     $visitor->setHeader('Content-Type', $generator->getMediaType('UrlWildcard'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadURLWildcard', array('urlWildcardId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startAttribute('id', $data->id);
     $generator->endAttribute('id');
     $generator->startValueElement('sourceUrl', $data->sourceUrl);
     $generator->endValueElement('sourceUrl');
     $generator->startValueElement('destinationUrl', $data->destinationUrl);
     $generator->endValueElement('destinationUrl');
     $generator->startValueElement('forward', $this->serializeBool($generator, $data->forward));
     $generator->endValueElement('forward');
     $generator->endObjectElement('UrlWildcard');
 }
 /**
  * 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('ContentTypeGroupInput');
     $visitor->setHeader('Content-Type', $generator->getMediaType('ContentTypeGroupInput'));
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     if ($data->creatorId !== null) {
         $generator->startObjectElement('User');
         $generator->startAttribute('href', $data->creatorId);
         $generator->endAttribute('href');
         $generator->endObjectElement('User');
     }
     if ($data->creationDate !== null) {
         $generator->startValueElement('modificationDate', $data->creationDate->format('c'));
         $generator->endValueElement('modificationDate');
     }
     $generator->endObjectElement('ContentTypeGroupInput');
 }
 /**
  * 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\RestUser $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $contentInfo = $data->contentInfo;
     $generator->startObjectElement('User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $contentInfo->id)));
     $generator->endAttribute('href');
     $generator->startAttribute('id', $contentInfo->id);
     $generator->endAttribute('id');
     $generator->startAttribute('remoteId', $contentInfo->remoteId);
     $generator->endAttribute('remoteId');
     $visitor->setHeader('Content-Type', $generator->getMediaType('User'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('UserUpdate'));
     $generator->startObjectElement('ContentType');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentType', array('contentTypeId' => $contentInfo->contentTypeId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('ContentType');
     $generator->startValueElement('name', $contentInfo->name);
     $generator->endValueElement('name');
     $generator->startObjectElement('Versions', 'VersionList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentVersions', array('contentId' => $contentInfo->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Versions');
     $generator->startObjectElement('Section');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadSection', array('sectionId' => $contentInfo->sectionId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Section');
     $generator->startObjectElement('MainLocation', 'Location');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => trim($data->mainLocation->pathString, '/'))));
     $generator->endAttribute('href');
     $generator->endObjectElement('MainLocation');
     $generator->startObjectElement('Locations', 'LocationList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadLocationsForContent', array('contentId' => $contentInfo->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Locations');
     $generator->startObjectElement('Groups', 'UserGroupRefList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUserGroupsOfUser', array('userId' => $contentInfo->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Groups');
     $generator->startObjectElement('Owner', 'User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $contentInfo->ownerId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Owner');
     $generator->startValueElement('publishDate', $contentInfo->publishedDate->format('c'));
     $generator->endValueElement('publishDate');
     $generator->startValueElement('lastModificationDate', $contentInfo->modificationDate->format('c'));
     $generator->endValueElement('lastModificationDate');
     $generator->startValueElement('mainLanguageCode', $contentInfo->mainLanguageCode);
     $generator->endValueElement('mainLanguageCode');
     $generator->startValueElement('alwaysAvailable', $this->serializeBool($generator, $contentInfo->alwaysAvailable));
     $generator->endValueElement('alwaysAvailable');
     $visitor->visitValueObject(new VersionValue($data->content, $data->contentType, $data->relations));
     $generator->startValueElement('login', $data->content->login);
     $generator->endValueElement('login');
     $generator->startValueElement('email', $data->content->email);
     $generator->endValueElement('email');
     $generator->startValueElement('enabled', $this->serializeBool($generator, $data->content->enabled));
     $generator->endValueElement('enabled');
     $generator->startObjectElement('UserGroups', 'UserGroupList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUserGroupsOfUser', array('userId' => $contentInfo->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('UserGroups');
     $generator->startObjectElement('Roles', 'RoleAssignmentList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadRoleAssignmentsForUser', array('userId' => $contentInfo->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Roles');
     $generator->endObjectElement('User');
 }
 /**
  * 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\UserSession $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $status = $data->created ? 201 : 200;
     $visitor->setStatus($status);
     $visitor->setHeader('Content-Type', $generator->getMediaType('Session'));
     $sessionHref = $this->router->generate('ezpublish_rest_deleteSession', array('sessionId' => $data->sessionId));
     //@todo Needs refactoring, disabling certain headers should not be done this way
     $visitor->setHeader('Accept-Patch', false);
     $generator->startObjectElement('Session');
     $generator->startAttribute('href', $sessionHref);
     $generator->endAttribute('href');
     $generator->startValueElement('name', $data->sessionName);
     $generator->endValueElement('name');
     $generator->startValueElement('identifier', $data->sessionId);
     $generator->endValueElement('identifier');
     $generator->startValueElement('csrfToken', $data->csrfToken);
     $generator->endValueElement('csrfToken');
     $generator->startObjectElement('User', 'User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $data->user->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('User');
     $generator->endObjectElement('Session');
 }
Exemple #28
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\Role $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('Role');
     $visitor->setHeader('Content-Type', $generator->getMediaType('Role'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('RoleInput'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadRole', array('roleId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     $generator->startObjectElement('Policies', 'PolicyList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadPolicies', array('roleId' => $data->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Policies');
     $generator->endObjectElement('Role');
 }
 /**
  * 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\Content\URLAlias $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('UrlAlias');
     $visitor->setHeader('Content-Type', $generator->getMediaType('UrlAlias'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadURLAlias', array('urlAliasId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startAttribute('id', $data->id);
     $generator->endAttribute('id');
     $generator->startAttribute('type', $this->serializeType($data->type));
     $generator->endAttribute('type');
     if ($data->type === Values\Content\URLAlias::LOCATION) {
         $generator->startObjectElement('location', 'Location');
         $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => $data->destination)));
         $generator->endAttribute('href');
         $generator->endObjectElement('location');
     } else {
         $generator->startValueElement('resource', $data->destination);
         $generator->endValueElement('resource');
     }
     $generator->startValueElement('path', $data->path);
     $generator->endValueElement('path');
     $generator->startValueElement('languageCodes', implode(',', $data->languageCodes));
     $generator->endValueElement('languageCodes');
     $generator->startValueElement('alwaysAvailable', $this->serializeBool($generator, $data->alwaysAvailable));
     $generator->endValueElement('alwaysAvailable');
     $generator->startValueElement('isHistory', $this->serializeBool($generator, $data->isHistory));
     $generator->endValueElement('isHistory');
     $generator->startValueElement('forward', $this->serializeBool($generator, $data->forward));
     $generator->endValueElement('forward');
     $generator->startValueElement('custom', $this->serializeBool($generator, $data->isCustom));
     $generator->endValueElement('custom');
     $generator->endObjectElement('UrlAlias');
 }
 /**
  * @param \eZ\Publish\SPI\Variation\Values\ImageVariation $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ContentImageVariation');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_binaryContent_getImageVariation', array('imageId' => $data->imageId, 'variationIdentifier' => $data->name)));
     $generator->endAttribute('href');
     $generator->startValueElement('uri', $data->uri);
     $generator->endValueElement('uri');
     if ($data->mimeType) {
         $generator->startValueElement('contentType', $data->mimeType);
         $generator->endValueElement('contentType');
     }
     if ($data->width) {
         $generator->startValueElement('width', $data->width);
         $generator->endValueElement('width');
     }
     if ($data->height) {
         $generator->startValueElement('height', $data->height);
         $generator->endValueElement('height');
     }
     if ($data->fileSize) {
         $generator->startValueElement('fileSize', $data->fileSize);
         $generator->endValueElement('fileSize');
     }
     $generator->endObjectElement('ContentImageVariation');
 }