TemplateInputFilter   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 1
c 1
b 0
f 1
lcom 0
cbo 1
dl 0
loc 66
ccs 0
cts 14
cp 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A init() 0 63 1
1
<?php
2
/**
3
 * Copyright (c) 2014 Roave, LLC.
4
 * All rights reserved.
5
 *
6
 * Redistribution and use in source and binary forms, with or without
7
 * modification, are permitted provided that the following conditions
8
 * are met:
9
 *
10
 *   * Redistributions of source code must retain the above copyright
11
 *     notice, this list of conditions and the following disclaimer.
12
 *
13
 *   * Redistributions in binary form must reproduce the above copyright
14
 *     notice, this list of conditions and the following disclaimer in
15
 *     the documentation and/or other materials provided with the
16
 *     distribution.
17
 *
18
 *   * Neither the names of the copyright holders nor the names of the
19
 *     contributors may be used to endorse or promote products derived
20
 *     from this software without specific prior written permission.
21
 *
22
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
 * POSSIBILITY OF SUCH DAMAGE.
34
 *
35
 * @author    Antoine Hedgecock
36
 *
37
 * @copyright 2014 Roave, LLC
38
 * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
39
 */
40
41
namespace Roave\EmailTemplates\InputFilter;
42
43
use Roave\EmailTemplates\Validator\CanRenderValidator;
44
use Zend\Filter\Boolean;
45
use Zend\Filter\StringTrim;
46
use Zend\InputFilter\InputFilter;
47
use Zend\Validator\NotEmpty;
48
49
class TemplateInputFilter extends InputFilter
50
{
51
    public function init()
52
    {
53
        $this->add([
54
            'name'       => 'updateParameters',
55
            'validators' => [
56
                [
57
                    'name'    => NotEmpty::class,
58
                    'options' => [
59
                        'type' => NotEmpty::ALL & ~NotEmpty::BOOLEAN,
60
                    ],
61
                ],
62
            ],
63
64
            'filters' => [
65
                ['name' => Boolean::class],
66
            ],
67
        ]);
68
69
        $this->add([
70
            'name' => 'parameters',
71
        ]);
72
73
        $this->add([
74
            'name'       => 'subject',
75
            'validators' => [
76
                ['name' => CanRenderValidator::class],
77
            ],
78
79
            'filters' => [
80
                ['name' => StringTrim::class],
81
            ],
82
        ]);
83
84
        $this->add([
85
            'name'       => 'textBody',
86
            'validators' => [
87
                ['name' => CanRenderValidator::class],
88
            ],
89
90
            'filters' => [
91
                ['name' => StringTrim::class],
92
            ],
93
        ]);
94
95
        $this->add([
96
            'name'       => 'htmlBody',
97
            'validators' => [
98
                ['name' => CanRenderValidator::class],
99
            ],
100
101
            'filters' => [
102
                ['name' => StringTrim::class],
103
            ],
104
        ]);
105
106
        $this->add([
107
            'name'        => 'description',
108
            'allow_empty' => true,
109
            'filters'     => [
110
                ['name' => StringTrim::class],
111
            ],
112
        ]);
113
    }
114
}
115