eZ\Publish\Core\REST\Client\Input\Parser\View::parse PHP Method

parse() public method

Parses input structure to a RestViewInput struct.
public parse ( array $data, ParsingDispatcher $parsingDispatcher ) : RestViewInput
$data array
$parsingDispatcher eZ\Publish\Core\REST\Common\Input\ParsingDispatcher
return eZ\Publish\Core\REST\Server\Values\RestViewInput
    public function parse(array $data, ParsingDispatcher $parsingDispatcher)
    {
        $viewData = [];
        // identifier
        if (!array_key_exists('identifier', $data)) {
            throw new Exceptions\Parser('Missing identifier attribute for ViewInput.');
        }
        $viewData['identifier'] = $data['identifier'];
        // query
        if (array_key_exists('ContentQuery', $data) && is_array($data['ContentQuery'])) {
            $viewData['query'] = $parsingDispatcher->parse($data['Query'], 'application/vnd.ez.api.internal.ContentQuery');
        } elseif (array_key_exists('LocationQuery', $data) && is_array($data['LocationQuery'])) {
            $viewData['query'] = $parsingDispatcher->parse($data['LocationQuery'], 'application/vnd.ez.api.internal.LocationQuery');
        } elseif (array_key_exists('Query', $data) && is_array($data['Query'])) {
            $viewData['query'] = $parsingDispatcher->parse($data['Query'], 'application/vnd.ez.api.internal.ContentQuery');
        } else {
            throw new Exceptions\Parser('Missing or invalid LocationQuery or ContentQuery attribute for View.');
        }
        // results
        $viewData['result'] = $parsingDispatcher->parse($data['Result'], $data['Result']['_media-type']);
        return new ViewValue($viewData);
    }
View