Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15457 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
15457 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Form;
6
 
7
use Laminas\InputFilter\InputFilter;
8
use Laminas\Db\Adapter\AdapterInterface;
9
use LeadersLinked\Mapper\RecruitmentSelectionVacancyMapper;
10
 
11
class RecruitmentSelectionCandidateFormFilter extends InputFilter
12
{
13
 
14
    /**
15
     *
16
     * @param AdapterInterface $adapter
17
     */
18
    public function __construct(AdapterInterface $adapter)
19
    {
20
 
21
        $this->add([
22
            'name' => 'user_id',
23
            'required' => false,
24
            'filters' => [
25
                ['name' => \Laminas\Filter\StripTags::class],
26
                ['name' => \Laminas\Filter\StringTrim::class],
27
            ],
28
            'validators' => [
29
                [
30
                    'name' => \Laminas\Validator\NotEmpty::class,
31
                ],
32
            ],
33
        ]);
34
 
35
        $this->add([
36
            'name' => 'form_uuid',
37
            'required' => true,
38
            'validators' => [
39
                [
40
                    'name' => \Laminas\Validator\NotEmpty::class,
41
                ],
42
                [
43
                    'name' => \Laminas\Validator\Db\RecordExists::class,
44
                    'options' => [
45
                        'adapter' => $adapter,
46
                        'table' => RecruitmentSelectionVacancyMapper::_TABLE,
47
                        'field' => 'uuid'
48
                    ]
49
                ]
50
            ],
51
        ]);
52
 
53
        $this->add([
54
            'name' => 'first_name',
55
            'required' => true,
56
            'filters' => [
57
                ['name' => \Laminas\Filter\StripTags::class],
58
                ['name' => \Laminas\Filter\StringTrim::class],
59
            ],
60
            'validators' => [
61
                [
62
                    'name' => \Laminas\Validator\StringLength::class,
63
                    'options' => [
64
                        'encoding' => 'UTF-8',
65
                        'max' => 128,
66
                    ],
67
                ],
68
                [
69
                    'name' => \Laminas\Validator\NotEmpty::class,
70
                ],
71
            ],
72
        ]);
73
 
74
        $this->add([
75
            'name' => 'last_name',
76
            'required' => true,
77
            'filters' => [
78
                ['name' => \Laminas\Filter\StripTags::class],
79
                ['name' => \Laminas\Filter\StringTrim::class],
80
            ],
81
            'validators' => [
82
                [
83
                    'name' => \Laminas\Validator\StringLength::class,
84
                    'options' => [
85
                        'encoding' => 'UTF-8',
86
                        'max' => 128,
87
                    ],
88
                ],
89
                [
90
                    'name' => \Laminas\Validator\NotEmpty::class,
91
                ],
92
            ],
93
        ]);
94
 
95
        $this->add([
96
            'name' => 'email',
97
            'required' => true,
98
            'filters' => [
99
                ['name' => \Laminas\Filter\StripTags::class],
100
                ['name' => \Laminas\Filter\StringTrim::class],
101
            ],
102
            'validators' => [
103
                [
104
                    'name' => \Laminas\Validator\StringLength::class,
105
                    'options' => [
106
                        'encoding' => 'UTF-8',
17002 efrain 107
                        'max' => 250,
15457 efrain 108
                    ],
109
                ],
110
                [
111
                    'name' => \Laminas\Validator\NotEmpty::class,
112
                ],
113
            ],
114
        ]);
115
 
116
        $this->add([
117
            'name' => 'coment',
118
            'required' => false,
119
            'filters' => [
120
                ['name' => \Laminas\Filter\StringTrim::class],
121
                ['name' => \LeadersLinked\Filter\HtmlPurify::class],
122
                [
123
                    'name' => \Laminas\Filter\StripTags::class,
124
                    'options' => [
125
                        'allowTags'     => [
17002 efrain 126
                            'h1','h2','h3','h4','h5','h6','p','strong','em','s','span','big','small','tt',
127
                            'hr','table','thead','tr','th','td','img', 'a','style'
15457 efrain 128
                        ],
129
                    ]
130
 
131
                ],
132
            ],
133
            'validators' => [
134
                [
135
                    'name' => \Laminas\Validator\NotEmpty::class,
136
                ],
137
            ],
138
        ]);
139
 
140
        $this->add([
141
            'name' => 'file',
142
            'required' => false,
143
            'filters' => [
144
                ['name' => \Laminas\Filter\BaseName::class],
145
            ],
146
            'validators' => [
147
                [
148
                    'name' => \Laminas\Validator\NotEmpty::class,
149
                ],
150
                [
151
                    'name' => \Laminas\Validator\File\Extension::class,
152
                    'options' => [
153
                        'extension' => ['pdf','doc','docx']
154
                    ]
155
                ],
156
                [
157
                    'name' => \Laminas\Validator\File\MimeType::class,
158
                    'options' => [
159
                        'mimeType' => [
160
                            'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
161
                            'application/msword',
162
                            'application/pdf',
163
                        ],
164
                        'enableHeaderCheck' => true,
165
                    ]
166
                ],
167
            ],
168
        ]);
169
 
170
 
171
        $this->add([
172
            'name' => 'status',
173
            'required' => true,
174
            'filters' => [
175
                ['name' => \Laminas\Filter\StripTags::class],
176
                ['name' => \Laminas\Filter\StringTrim::class],
177
            ],
178
            'validators' =>[
179
                [
180
                    'name' =>\Laminas\Validator\NotEmpty::class,
181
                ],
182
 
183
            ]
184
        ]);
185
 
186
        $this->add([
187
            'name' => 'evaluation',
188
            'required' => true,
189
            'filters' => [
190
                ['name' => \Laminas\Filter\StripTags::class],
191
                ['name' => \Laminas\Filter\StringTrim::class],
192
            ],
193
            'validators' =>[
194
                [
195
                    'name' =>\Laminas\Validator\NotEmpty::class,
196
                ],
197
 
198
            ]
199
        ]);
200
 
201
    }
202
}