/** * @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'); }
/** * 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'); }
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'); }
/** * 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'); }
/** * 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'); }