Proyectos de Subversion LeadersLinked - Backend

Rev

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

<?php

declare(strict_types=1);

namespace LeadersLinked\Form\Job;

use Laminas\Db\Adapter\AdapterInterface;
use Laminas\InputFilter\InputFilter;
use LeadersLinked\Mapper\IndustryMapper;
use LeadersLinked\Mapper\CompanySizeMapper;
use LeadersLinked\Mapper\CurrencyMapper;

class JobSalaryFilter extends InputFilter
{
    /**
     * 
     * @param AdapterInterface $adapter
     */
    public function __construct($adapter)
    {
        $this->add([
            'name' => 'salary_visible',
            'required' => false,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 2,
                    ],
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'salary_currency',
            'required' => false,
            'filters' => [
                ['name' => \Laminas\Filter\StripTags::class],
                ['name' => \Laminas\Filter\StringTrim::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 5,
                    ],
                ],
                [
                    'name' => \Laminas\Validator\Db\RecordExists::class,
                    'options' => [
                        'adapter' => $adapter,
                        'table' => CurrencyMapper::_TABLE,
                        'field' => 'currency'
                    ],
                ]
            ],
        ]);

        $this->add([
            'name' => 'salary_min',
            'required' => true,
            'filters' => [
                ['name' => \LeadersLinked\Filter\Floatval::class],
            ],
            'validators' => [
                [
                    'name' =>  \LeadersLinked\Validator\NotEmptyConditional::class,
                    'options' => [
                        'token' => 'salary_visible',
                        'condition' => 'y',
                    ]
                ]
            ],
        ]);
        
        $this->add([
            'name' => 'salary_max',
            'required' => true,
            'filters' => [
                ['name' => \LeadersLinked\Filter\Floatval::class],
            ],
            'validators' => [
                [
                    'name' =>  \LeadersLinked\Validator\NotEmptyConditional::class,
                    'options' => [
                        'token' => 'salary_visible',
                        'condition' => 'y',
                    ]
                ],
                [
                    'name' => \LeadersLinked\Validator\GreaterThanOtherField::class,
                    'options' => [
                        'token' => 'experience_min',
                        'label' => 'LABEL_MINIMUM',
                        'inclusive' => false,
                    ]
                ]
            ],
        ]);
        
        


    }
}