Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15461 | | 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\RecruitmentSelection;
6
use LeadersLinked\Mapper\IndustryMapper;
7
use LeadersLinked\Mapper\JobDescriptionMapper;
8
use LeadersLinked\Mapper\JobCategoryMapper;
9
use LeadersLinked\Mapper\CompanyMapper;
10
 
11
use Laminas\InputFilter\InputFilter;
12
use Laminas\Db\Adapter\AdapterInterface;
13
use LeadersLinked\Mapper\RecruitmentSelectionVacancyMapper;
14
 
15
class RecruitmentSelectionVacancyFilter extends InputFilter
16
{
17
    /**
18
     *
19
     * @param AdapterInterface $adapter
20
     */
21
    public function __construct(AdapterInterface $adapter)
22
    {
23
 
24
        $this->add([
25
            'name' => 'name',
26
            'required' => true,
27
            'filters' => [
28
                ['name' => \Laminas\Filter\StripTags::class],
29
                ['name' => \Laminas\Filter\StringTrim::class],
30
            ],
31
            'validators' => [
32
                [
33
                    'name' => \Laminas\Validator\StringLength::class,
34
                    'options' => [
35
                        'encoding' => 'UTF-8',
36
                        'max' => 128,
37
                    ],
38
                ],
39
                [
40
                    'name' => \Laminas\Validator\NotEmpty::class,
41
                ],
42
            ],
43
        ]);
44
 
45
        $this->add([
46
            'name' => 'job_description_id',
47
            'required' => true,
48
            'filters' => [
49
                ['name' => \Laminas\Filter\StripTags::class],
50
                ['name' => \Laminas\Filter\StringTrim::class],
51
            ],
52
            'validators' =>[
53
                [
54
                    'name' =>\Laminas\Validator\NotEmpty::class,
55
                ],
56
                [
57
                    'name' => \Laminas\Validator\Db\RecordExists::class,
58
                    'options' => [
59
                        'adapter' => $adapter,
60
                        'table' => JobDescriptionMapper::_TABLE,
61
                        'field' => 'uuid'
62
                    ]
63
                ]
64
            ]
65
        ]);
66
 
67
        $this->add([
68
            'name' => 'job_category_id',
69
            'required' => true,
70
            'filters' => [
71
                ['name' => \Laminas\Filter\StripTags::class],
72
                ['name' => \Laminas\Filter\StringTrim::class],
73
            ],
74
            'validators' =>[
75
                [
76
                    'name' =>\Laminas\Validator\NotEmpty::class,
77
                ],
78
                [
79
                    'name' => \Laminas\Validator\Db\RecordExists::class,
80
                    'options' => [
81
                        'adapter' => $adapter,
82
                        'table' => JobCategoryMapper::_TABLE,
83
                        'field' => 'uuid'
84
                    ]
85
                ]
86
            ]
87
        ]);
88
 
89
        $this->add([
90
            'name' => 'industry_id',
91
            'required' => true,
92
            'filters' => [
93
                ['name' => \Laminas\Filter\StripTags::class],
94
                ['name' => \Laminas\Filter\StringTrim::class],
95
            ],
96
            'validators' =>[
97
                [
98
                    'name' =>\Laminas\Validator\NotEmpty::class,
99
                ],
100
                [
101
                    'name' => \Laminas\Validator\Db\RecordExists::class,
102
                    'options' => [
103
                        'adapter' => $adapter,
104
                        'table' => IndustryMapper::_TABLE,
105
                        'field' => 'uuid'
106
                    ]
107
                ]
108
            ]
109
        ]);
110
 
111
        $this->add([
112
            'name' => 'description',
113
            'required' => true,
114
            'filters' => [
115
                ['name' => \Laminas\Filter\StringTrim::class],
116
                ['name' => \LeadersLinked\Filter\HtmlPurify::class],
117
                [
118
                    'name' => \Laminas\Filter\StripTags::class,
119
                    'options' => [
120
                        'allowTags'     => [
17002 efrain 121
                            'h1','h2','h3','h4','h5','h6','p','strong','em','s','span','big','small','tt',
122
                            'hr','table','thead','tr','th','td','img', 'a','style'
15457 efrain 123
                        ],
124
                    ]
125
 
126
                ],
127
            ],
128
            'validators' => [
129
                [
130
                    'name' => \Laminas\Validator\NotEmpty::class,
131
                ],
132
            ],
133
        ]);
134
 
135
        $this->add([
136
            'name' => 'formatted_address',
137
            'required' => true,
138
            'filters' => [
139
                ['name' => \Laminas\Filter\StripTags::class],
140
                ['name' => \Laminas\Filter\StringTrim::class],
141
            ],
142
            'validators' => [
143
                [
144
                    'name' => \Laminas\Validator\NotEmpty::class,
145
                ],
146
            ],
147
        ]);
148
 
149
        $this->add([
150
            'name' => 'address1',
151
            'required' => false,
152
            'filters' => [
153
                ['name' => \Laminas\Filter\StripTags::class],
154
                ['name' => \Laminas\Filter\StringTrim::class],
155
            ],
156
        ]);
157
 
158
        $this->add([
159
            'name' => 'address2',
160
            'required' => false,
161
            'filters' => [
162
                ['name' => \Laminas\Filter\StripTags::class],
163
                ['name' => \Laminas\Filter\StringTrim::class],
164
            ],
165
        ]);
166
 
167
        $this->add([
168
            'name' => 'country',
169
            'required' => true,
170
            'filters' => [
171
                ['name' => \Laminas\Filter\StripTags::class],
172
                ['name' => \Laminas\Filter\StringTrim::class],
173
            ],
174
            'validators' => [
175
                [
176
                    'name' => \Laminas\Validator\StringLength::class,
177
                    'options' => [
178
                        'encoding' => 'UTF-8',
179
                        'max' => 128,
180
                    ],
181
                ],
182
                [
183
                    'name' => \Laminas\Validator\NotEmpty::class,
184
                ],
185
            ],
186
        ]);
187
 
188
        $this->add([
189
            'name' => 'state',
190
            'required' => true,
191
            'filters' => [
192
                ['name' => \Laminas\Filter\StripTags::class],
193
                ['name' => \Laminas\Filter\StringTrim::class],
194
            ],
195
            'validators' => [
196
                [
197
                    'name' => \Laminas\Validator\StringLength::class,
198
                    'options' => [
199
                        'encoding' => 'UTF-8',
200
                        'max' => 128,
201
                    ],
202
                ],
203
                [
204
                    'name' => \Laminas\Validator\NotEmpty::class,
205
                ],
206
            ],
207
        ]);
208
 
209
        $this->add([
210
            'name' => 'city1',
211
            'required' => true,
212
            'filters' => [
213
                ['name' => \Laminas\Filter\StripTags::class],
214
                ['name' => \Laminas\Filter\StringTrim::class],
215
            ],
216
            'validators' => [
217
                [
218
                    'name' => \Laminas\Validator\StringLength::class,
219
                    'options' => [
220
                        'encoding' => 'UTF-8',
221
                        'max' => 128,
222
                    ],
223
                ],
224
            ],
225
        ]);
226
 
227
        $this->add([
228
            'name' => 'city2',
229
            'required' => false,
230
            'filters' => [
231
                ['name' => \Laminas\Filter\StripTags::class],
232
                ['name' => \Laminas\Filter\StringTrim::class],
233
            ],
234
            'validators' => [
235
                [
236
                    'name' => \Laminas\Validator\StringLength::class,
237
                    'options' => [
238
                        'encoding' => 'UTF-8',
239
                        'max' => 128,
240
                    ],
241
                ],
242
            ],
243
        ]);
244
 
245
        $this->add([
246
            'name' => 'postal_code',
247
            'required' => false,
248
            'filters' => [
249
                ['name' => \Laminas\Filter\StripTags::class],
250
                ['name' => \Laminas\Filter\StringTrim::class],
251
            ],
252
            'validators' => [
253
                [
254
                    'name' => \Laminas\Validator\StringLength::class,
255
                    'options' => [
256
                        'encoding' => 'UTF-8',
257
                        'max' => 6,
258
                    ],
259
                ],
260
            ],
261
        ]);
262
 
263
        $this->add([
264
            'name' => 'latitude',
265
            'required' => true,
266
            'filters' => [
267
                ['name' => \LeadersLinked\Filter\Floatval::class],
268
            ],
269
            'validators' => [
270
 
271
                [
272
                    'name' => \Laminas\Validator\NotEmpty::class,
273
                ],
274
            ],
275
        ]);
276
 
277
        $this->add([
278
            'name' => 'longitude',
279
            'required' => true,
280
            'filters' => [
281
                ['name' => \LeadersLinked\Filter\Floatval::class],
282
            ],
283
            'validators' => [
284
 
285
                [
286
                    'name' => \Laminas\Validator\NotEmpty::class,
287
                ],
288
            ],
289
        ]);
290
 
291
        $this->add([
292
            'name' => 'last_date',
293
            'required' => true,
294
            'filters' => [
295
                ['name' => \Laminas\Filter\StripTags::class],
296
                ['name' => \Laminas\Filter\StringTrim::class],
297
            ],
298
            'validators' => [
299
                [
300
                    'name' => \Laminas\Validator\StringLength::class,
301
                    'options' => [
302
                        'encoding' => 'UTF-8',
303
                        'max' => 10,
304
                    ],
305
                ],
306
                [
307
                    'name' => \Laminas\Validator\NotEmpty::class,
308
                ],
309
                [
310
                    'name' => \Laminas\Validator\GreaterThan::class,
311
                    'options' => [
312
                        'encoding' => 'UTF-8',
15461 efrain 313
                        'min' => date('Y-m-d'),
15457 efrain 314
                        'inclusive' => true,
315
                    ],
316
                ],
317
                [
318
                    'name' => \Laminas\Validator\Date::class,
319
                    'options' => [
15461 efrain 320
                        'format' => 'Y-m-d',
15457 efrain 321
 
322
                    ],
323
                ],
324
 
325
            ],
326
        ]);
327
 
328
    }
329
}