Proyectos de Subversion LeadersLinked - Backend

Rev

Autoría | Ultima modificación | Ver Log |

<?php

declare(strict_types=1);

namespace LeadersLinked\Form\FastSurvey;

use Laminas\InputFilter\InputFilter;

class FastSurveyFilter extends InputFilter
{

    
    public function __construct()
    {
        $this->add([
            'name' => 'question',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 1024,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);

        $this->add([
            'name' => 'number_of_answers',
            'required' => true,
            'filters' => [
                ['name' => \LeadersLinked\Filter\Intval::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\GreaterThan::class,
                    'options' => [
                        'inclusive' => true,
                        'min' => 2,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\LessThan::class,
                    'options' => [
                        'inclusive' => true,
                        'max' => 5,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        

        $this->add([
            'name' => 'answer1',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 100,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        
        
        $this->add([
            'name' => 'answer2',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 100,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        
        
        
        $this->add([
            'name' => 'answer3',
            'required' =>  true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 100,
                    ],
                ],
                [
                    'name' => \LeadersLinked\Validator\NotEmptyConditionalGreaterThan::class,
                    'options' => [
                        'token' => 'number_of_answers',
                        'token_value' => 3,
                        'inclusive' => true,
                    ],
                ],
            ],
        ]);
        
        
        $this->add([
            'name' => 'answer4',
            'required' =>  true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 100,
                    ],
                ],
                [
                    'name' => \LeadersLinked\Validator\NotEmptyConditionalGreaterThan::class,
                    'options' => [
                        'token' => 'number_of_answers',
                        'token_value' => 4,
                        'inclusive' => true,
                    ],
                ],
            ],
        ]);
        
        
        $this->add([
            'name' => 'answer5',
            'required' =>  true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 100,
                    ],
                ],
                [
                    'name' => \LeadersLinked\Validator\NotEmptyConditionalGreaterThan::class,
                    'options' => [
                        'token' => 'number_of_answers',
                        'token_value' => 5,
                        'inclusive' => true,
                    ],
                ],
            ],
        ]);
        
        
        $this->add([
            'name' => 'privacy',
            'required' =>  true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'result_type',
            'required' =>  true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'duration_days',
            'required' =>  true,
            'filters' => [
                ['name' => \LeadersLinked\Filter\Intval::Class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\GreaterThan::class,
                    'options' => [
                        'inclusive' => true,
                        'min' => 1,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\LessThan::class,
                    'options' => [
                        'inclusive' => true,
                        'max' => 29,
                    ],
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'duration_hours',
            'required' =>  true,
            'filters' => [
                ['name' => \LeadersLinked\Filter\Intval::Class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\GreaterThan::class,
                    'options' => [
                        'inclusive' => true,
                        'min' => 0,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\LessThan::class,
                    'options' => [
                        'inclusive' => true,
                        'max' => 23,
                    ],
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'duration_minutes',
            'required' =>  true,
            'filters' => [
                ['name' => \LeadersLinked\Filter\Intval::Class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\GreaterThan::class,
                    'options' => [
                        'inclusive' => true,
                        'min' => 0,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\LessThan::class,
                    'options' => [
                        'inclusive' => true,
                        'max' => 59,
                    ],
                ],
            ],
        ]);
        
    }
}