예제 #1
0
 /** {@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);
 }
예제 #2
0
 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);
 }