/** {@inheritdoc} */ public function parseHttpRequest(ServerHttpRequest $httpRequest, array $attributes) : RequestInterface { $rpHelper = new HttpRequestParserHelper($httpRequest); $filter = $rpHelper->getFilter(); $filter->values(['data.attributes.title', 'data.attributes.slug', 'data.attributes.short_title'])->trim()->stripHtml(); $filter->value('data.attributes.sort_order')->int(); $validator = $rpHelper->getValidator(); $validator->required('data.type')->equals('pages'); $validator->required('data.attributes.title')->lengthBetween(1, 512); $validator->required('data.attributes.slug')->lengthBetween(1, 48)->regex('#^[a-z0-9\\-]+$#'); $validator->required('data.attributes.short_title')->lengthBetween(1, 48); $validator->optional('data.attributes.parent_uuid')->uuid(); $validator->required('data.attributes.sort_order')->integer(); $validator->required('data.attributes.status')->inArray(PageStatusValue::getValidStatuses(), true); $data = (array) $httpRequest->getParsedBody(); return new Request(self::MESSAGE, $rpHelper->filterAndValidate($data)['data']['attributes'], $httpRequest); }
public function parseHttpRequest(ServerHttpRequest $httpRequest, array $attributes) : RequestInterface { $rpHelper = new HttpRequestParserHelper($httpRequest); $filter = $rpHelper->getFilter(); $filter->values(['data.attributes.type', 'data.attributes.location'])->string()->trim(); $filter->value('data.attributes.sort_order')->int(); $validator = $rpHelper->getValidator(); $validator->required('data.id')->uuid(); $validator->required('data.type')->equals('pageBlocks'); $validator->required('data.attributes.type')->lengthBetween(1, 48)->regex('#^[a-z0-9\\-]+$#'); $validator->optional('data.attributes.parameters'); $validator->required('data.attributes.location')->lengthBetween(1, 48)->regex('#^[a-z0-9\\-]+$#'); $validator->required('data.attributes.sort_order')->integer(); $validator->required('data.attributes.status')->inArray(PageStatusValue::getValidStatuses(), true); $parameters = (array) $httpRequest->getParsedBody(); $parameters['data']['id'] = $attributes['page_uuid']; return new Request(self::MESSAGE, $rpHelper->filterAndValidate($parameters)['data'], $httpRequest); }