Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16987 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php

declare(strict_types=1);

namespace LeadersLinked\Form\Network;

use Laminas\InputFilter\InputFilter;
use LeadersLinked\Mapper\IndustryMapper;
use LeadersLinked\Mapper\CompanySizeMapper;
use LeadersLinked\Mapper\ThemeMapper;

class NetworkCreateFilter extends InputFilter
{
    public function __construct($adapter)
    {
        $this->add([
            'name' => 'first_name',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 64,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        $this->add([
            'name' => 'last_name',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 64,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
                
            ],
        ]);
        
        
        $this->add([
            'name' => 'email',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 250,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\EmailAddress::class,
                ],
                /*[
                 'name' => \Laminas\Validator\Db\NoRecordExists::class,
                 'options' => [
                 'table' => UserMapper::_TABLE,
                 'field' => 'email',
                 'adapter' => $adapter,
                 ],
                 ],*/
                
            ],
        ]);
        
        
        $this->add([
            'name' => 'password',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' =>[
                [
                    'name' =>\Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'min' => 6,
                        'max' => 25
                    ],
                ],
                [
                    'name' => \LeadersLinked\Validator\PasswordStrengthCheck::class,
                ],
            ]
        ]);
        
        $this->add([
            'name' => 'confirmation',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' =>[
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'min' => 6,
                        'max' => 25
                    ],
                ],
                [
                    'name' => \LeadersLinked\Validator\PasswordStrengthCheck::class,
                ],
                [
                    'name' => \Laminas\Validator\Identical::class,
                    'options' => [
                        'strict' => 'false',
                        'token' =>'password'
                    ],
                ]
            ]
        ]);
        
        $this->add([
            'name' => 'company',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 128,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);

        $this->add([
            'name' => 'industry_id',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' =>[
                [
                    'name' =>\Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\Db\RecordExists::class,
                    'options' => [
                        'adapter' => $adapter,
                        'table' => IndustryMapper::_TABLE,
                        'field' => 'uuid'
                    ]
                ]
            ]
        ]);
        
        
        $this->add([
            'name' => 'company_size_id',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' =>[
                [
                    'name' =>\Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\Db\RecordExists::class,
                    'options' => [
                        'adapter' => $adapter,
                        'table' => CompanySizeMapper::_TABLE,
                        'field' => 'uuid'
                    ]
                ]
                
            ]
        ]);
        
        $this->add([
            'name' => 'main_hostname',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 250,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'alternative_hostname',
            'required' => false,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 250,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],

            ],
        ]);
        
        $this->add([
            'name' => 'admin_hostname',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 250,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'service_hostname',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 250,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'theme_id',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' =>[
                [
                    'name' =>\Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\Db\RecordExists::class,
                    'options' => [
                        'adapter' => $adapter,
                        'table' => ThemeMapper::_TABLE,
                        'field' => 'uuid',
                    ]
                ]
            ]
        ]);
        
        $this->add([
            'name' => 'moodle_name',
            'required' => false,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 20,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        
        
        $this->add([
            'name' => 'moodle_url',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 250,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\Uri::class,
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'microlearning_name',
            'required' => false,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 250,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);

        $this->add([
            'name' => 'microlearning_appstore',
            'required' => false,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 250,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\Uri::class,
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'microlearning_playstore',
            'required' => false,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 250,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\Uri::class,
                ],
            ],
        ]);
        
        
        $this->add([
            'name' => 'relationship_user_mode',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        

        
    }
}