SuiteCRM-Core/Api/V8/Param/Options/Page.php
Dillon-Brown 8e4cc94994 Squashed 'public/legacy/' content from commit 817a12dc0
git-subtree-dir: public/legacy
git-subtree-split: 817a12dc0c30c189f56d5cb1f7dc37a9631bdbe3
2021-03-31 15:37:32 +01:00

35 lines
1 KiB
PHP

<?php
namespace Api\V8\Param\Options;
use Api\V8\Param\PageParams;
use Symfony\Component\OptionsResolver\Options;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints as Assert;
class Page extends BaseOption
{
const REGEX_PAGE_PATTERN = '/[^\d]/';
/**
* @inheritdoc
*/
public function add(OptionsResolver $resolver)
{
$resolver
->setDefined('page')
->setAllowedTypes('page', 'array')
->setAllowedValues('page', $this->validatorFactory->createClosureForIterator([
new Assert\NotBlank(),
new Assert\Regex([
'pattern' => self::REGEX_PAGE_PATTERN,
'match' => false,
]),
], true))
->setNormalizer('page', function (Options $options, $values) {
$pageParams = new PageParams($this->validatorFactory, $this->beanManager);
$pageParams->configure($values);
return $pageParams;
});
}
}