/** * Parse input structure * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @return \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroupCreateStruct */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { // Since ContentTypeGroupInput is used both for creating and updating ContentTypeGroup and identifier is not // required when updating ContentTypeGroup, we need to rely on PAPI to throw the exception on missing // identifier when creating a ContentTypeGroup // @todo Bring in line with XSD which says that identifier is required always $contentTypeGroupIdentifier = null; if (array_key_exists('identifier', $data)) { $contentTypeGroupIdentifier = $data['identifier']; } $contentTypeGroupCreateStruct = $this->contentTypeService->newContentTypeGroupCreateStruct($contentTypeGroupIdentifier); if (array_key_exists('modificationDate', $data)) { $contentTypeGroupCreateStruct->creationDate = new DateTime($data['modificationDate']); } // @todo mainLanguageCode, names, descriptions? if (array_key_exists('User', $data) && is_array($data['User'])) { if (!array_key_exists('_href', $data['User'])) { throw new Exceptions\Parser("Missing '_href' attribute for User element in ContentTypeGroupInput."); } $contentTypeGroupCreateStruct->creatorId = $this->requestParser->parseHref($data['User']['_href'], 'userId'); } return $contentTypeGroupCreateStruct; }
/** * Instantiates a new content type group create class * * @param string $identifier * * @return \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroupCreateStruct */ public function newContentTypeGroupCreateStruct($identifier) { return $this->service->newContentTypeGroupCreateStruct($identifier); }