Parses the given $objectElement, if it contains embedded data.
public parseObjectElement ( array $objectElement, |
||
$objectElement | array | |
$parsingDispatcher | ||
return | mixed |
/** * Parse input structure * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @return \eZ\Publish\Core\REST\Client\Values\FieldDefinitionList */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { $fieldDefinitionReferences = array(); foreach ($data['FieldDefinition'] as $fieldDefinitionData) { $fieldDefinitionReferences[] = $this->parserTools->parseObjectElement($fieldDefinitionData, $parsingDispatcher); } return new Values\FieldDefinitionList($this->contentTypeService, $fieldDefinitionReferences); }
/** * Parse input structure * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @return \eZ\Publish\API\Repository\Values\ContentType\ContentType * @todo Error handling * @todo What about missing properties? Set them here, using the service to * load? Or better set them in the service, since loading is really * unsuitable here? */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { $creatorId = $this->parserTools->parseObjectElement($data['Creator'], $parsingDispatcher); $modifierId = $this->parserTools->parseObjectElement($data['Modifier'], $parsingDispatcher); $fieldDefinitionListReference = $this->parserTools->parseObjectElement($data['FieldDefinitions'], $parsingDispatcher); $contentType = new Values\ContentType\ContentType($this->contentTypeService, array('id' => $data['_href'], 'status' => $this->parserTools->parseStatus($data['status']), 'identifier' => $data['identifier'], 'names' => isset($data['names']) ? $this->parserTools->parseTranslatableList($data['names']) : null, 'descriptions' => isset($data['descriptions']) ? $this->parserTools->parseTranslatableList($data['descriptions']) : null, 'creationDate' => new \DateTime($data['creationDate']), 'modificationDate' => new \DateTime($data['modificationDate']), 'creatorId' => $creatorId, 'modifierId' => $modifierId, 'remoteId' => $data['remoteId'], 'urlAliasSchema' => $data['urlAliasSchema'], 'nameSchema' => $data['nameSchema'], 'isContainer' => $this->parserTools->parseBooleanValue($data['isContainer']), 'mainLanguageCode' => $data['mainLanguageCode'], 'defaultAlwaysAvailable' => $this->parserTools->parseBooleanValue($data['defaultAlwaysAvailable']), 'defaultSortOrder' => $this->parserTools->parseDefaultSortOrder($data['defaultSortOrder']), 'defaultSortField' => $this->parserTools->parseDefaultSortField($data['defaultSortField']), 'fieldDefinitionListReference' => $fieldDefinitionListReference)); if ($contentType->status === Values\ContentType\ContentType::STATUS_DRAFT) { return new Values\ContentType\ContentTypeDraft($contentType); } return $contentType; }
/** * Parse input structure * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @return \eZ\Publish\API\Repository\Values\Content\ContentInfo * @todo Error handling * @todo What about missing properties? Set them here, using the service to * load? Or better set them in the service, since loading is really * unsuitable here? */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { $contentTypeId = $this->parserTools->parseObjectElement($data['ContentType'], $parsingDispatcher); $ownerId = $this->parserTools->parseObjectElement($data['Owner'], $parsingDispatcher); $mainLocationId = $this->parserTools->parseObjectElement($data['MainLocation'], $parsingDispatcher); $sectionId = $this->parserTools->parseObjectElement($data['Section'], $parsingDispatcher); $locationListReference = $this->parserTools->parseObjectElement($data['Locations'], $parsingDispatcher); $versionListReference = $this->parserTools->parseObjectElement($data['Versions'], $parsingDispatcher); $currentVersionReference = $this->parserTools->parseObjectElement($data['CurrentVersion'], $parsingDispatcher); if (isset($data['CurrentVersion']['Version'])) { $this->parserTools->parseObjectElement($data['CurrentVersion']['Version'], $parsingDispatcher); } return new Values\RestContentInfo(array('id' => $data['_href'], 'name' => $data['Name'], 'contentTypeId' => $contentTypeId, 'ownerId' => $ownerId, 'modificationDate' => new \DateTime($data['lastModificationDate']), 'publishedDate' => $publishedDate = !empty($data['publishedDate']) ? new \DateTime($data['publishedDate']) : null, 'published' => $publishedDate !== null, 'alwaysAvailable' => strtolower($data['alwaysAvailable']) === 'true', 'remoteId' => $data['_remoteId'], 'mainLanguageCode' => $data['mainLanguageCode'], 'mainLocationId' => $mainLocationId, 'sectionId' => $sectionId, 'versionListReference' => $versionListReference, 'locationListReference' => $locationListReference, 'currentVersionReference' => $currentVersionReference)); }
/** * Parse input structure. * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @todo Error handling * * @return \eZ\Publish\API\Repository\Values\Content\Section */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { $creatorId = $this->parserTools->parseObjectElement($data['Creator'], $parsingDispatcher); $modifierId = $this->parserTools->parseObjectElement($data['Modifier'], $parsingDispatcher); return new Values\ContentType\ContentTypeGroup(array('id' => $data['_href'], 'identifier' => $data['identifier'], 'creationDate' => new \DateTime($data['created']), 'modificationDate' => new \DateTime($data['modified']), 'creatorId' => $creatorId, 'modifierId' => $modifierId)); }
/** * Parse input structure * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @todo Error handling * * @return \eZ\Publish\API\Repository\Values\Content\VersionInfo */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { $contentInfoId = $this->parserTools->parseObjectElement($data['Content'], $parsingDispatcher); return new Values\Content\VersionInfo($this->contentService, array('id' => $data['id'], 'versionNo' => $data['versionNo'], 'status' => $this->convertVersionStatus($data['status']), 'modificationDate' => new \DateTime($data['modificationDate']), 'creatorId' => $data['Creator']['_href'], 'creationDate' => new \DateTime($data['creationDate']), 'initialLanguageCode' => $data['initialLanguageCode'], 'languageCodes' => explode(',', $data['languageCodes']), 'names' => $this->parserTools->parseTranslatableList($data['names']), 'contentInfoId' => $contentInfoId)); }