parseObjectElement() public method

Parses the given $objectElement, if it contains embedded data.
public parseObjectElement ( array $objectElement, ParsingDispatcher $parsingDispatcher ) : mixed
$objectElement array
$parsingDispatcher 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;
 }
Example #3
0
 /**
  * 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));
 }
Example #5
0
 /**
  * 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));
 }