eZ\Publish\Core\REST\Server\Input\Parser\ContentUpdate::parse PHP Method

parse() public method

Parse input structure.
public parse ( array $data, ParsingDispatcher $parsingDispatcher ) : RestContentMetadataUpdateStruct
$data array
$parsingDispatcher eZ\Publish\Core\REST\Common\Input\ParsingDispatcher
return eZ\Publish\Core\REST\Common\Values\RestContentMetadataUpdateStruct
    public function parse(array $data, ParsingDispatcher $parsingDispatcher)
    {
        $parsedData = array();
        if (array_key_exists('Section', $data) && is_array($data['Section']) && isset($data['Section']['_href'])) {
            try {
                $parsedData['sectionId'] = $this->requestParser->parseHref($data['Section']['_href'], 'sectionId');
            } catch (Exceptions\InvalidArgumentException $e) {
                throw new Exceptions\Parser('Invalid format for <Section> reference in <ContentUpdate>.');
            }
        }
        if (array_key_exists('Owner', $data) && is_array($data['Owner']) && isset($data['Owner']['_href'])) {
            try {
                $parsedData['ownerId'] = $this->requestParser->parseHref($data['Owner']['_href'], 'userId');
            } catch (Exceptions\InvalidArgumentException $e) {
                throw new Exceptions\Parser('Invalid format for <Owner> reference in <ContentUpdate>.');
            }
        }
        if (array_key_exists('mainLanguageCode', $data)) {
            $parsedData['mainLanguageCode'] = $data['mainLanguageCode'];
        }
        if (array_key_exists('MainLocation', $data)) {
            try {
                $mainLocationIdParts = explode('/', $this->requestParser->parseHref($data['MainLocation']['_href'], 'locationPath'));
                $parsedData['mainLocationId'] = array_pop($mainLocationIdParts);
            } catch (Exceptions\InvalidArgumentException $e) {
                throw new Exceptions\Parser('Invalid format for <MainLocation> reference in <ContentUpdate>.');
            }
        }
        if (array_key_exists('alwaysAvailable', $data)) {
            if ($data['alwaysAvailable'] === 'true') {
                $parsedData['alwaysAvailable'] = true;
            } elseif ($data['alwaysAvailable'] === 'false') {
                $parsedData['alwaysAvailable'] = false;
            } else {
                throw new Exceptions\Parser('Invalid format for <alwaysAvailable> in <ContentUpdate>.');
            }
        }
        // remoteId
        if (array_key_exists('remoteId', $data)) {
            $parsedData['remoteId'] = $data['remoteId'];
        }
        // modificationDate
        if (array_key_exists('modificationDate', $data)) {
            try {
                $parsedData['modificationDate'] = new DateTime($data['modificationDate']);
            } catch (Exception $e) {
                throw new Exceptions\Parser('Invalid format for <modificationDate> in <ContentUpdate>', 0, $e);
            }
        }
        // publishDate
        if (array_key_exists('publishDate', $data)) {
            try {
                $parsedData['publishedDate'] = new DateTime($data['publishDate']);
            } catch (Exception $e) {
                throw new Exceptions\Parser('Invalid format for <publishDate> in <ContentUpdate>', 0, $e);
            }
        }
        return new RestContentMetadataUpdateStruct($parsedData);
    }
ContentUpdate