Passed
Push — master ( f8f76e...e5015c )
by Bas
12:29
created

normalizeLevenshteinMatch()   A

Complexity

Conditions 4
Paths 8

Size

Total Lines 31
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 22
CRAP Score 4

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
eloc 21
c 1
b 0
f 0
nc 8
nop 1
dl 0
loc 31
ccs 22
cts 22
cp 1
crap 4
rs 9.584
1
<?php
2
3
namespace LaravelFreelancerNL\FluentAQL\Traits;
4
5
use LaravelFreelancerNL\FluentAQL\QueryBuilder;
6
7
/**
8
 * Trait hasFunctions.
9
 *
10
 * AQL Function API calls.
11
 */
12
trait NormalizesArangoSearchFunctions
13
{
14 8
    protected function normalizeAnalyzer(QueryBuilder $queryBuilder)
15
    {
16 8
        $this->parameters['predicates'] = $queryBuilder->normalizePredicates($this->parameters['predicates']);
0 ignored issues
show
Bug Best Practice introduced by
The property parameters does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
17 8
        $this->parameters['analyzer'] = $queryBuilder->normalizeArgument(
18 8
            $this->parameters['analyzer'],
19 8
            ['Reference', 'Query', 'Bind']
20
        );
21 8
    }
22
23 2
    protected function normalizeBoost(QueryBuilder $queryBuilder)
24
    {
25 2
        $this->parameters['predicates'] = $queryBuilder->normalizePredicates($this->parameters['predicates']);
0 ignored issues
show
Bug Best Practice introduced by
The property parameters does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
26 2
        $this->parameters['boost'] = $queryBuilder->normalizeArgument(
27 2
            $this->parameters['boost'],
28 2
            ['Number', 'Reference', 'Query', 'Bind']
29
        );
30 2
    }
31
32 3
    protected function normalizeBm25(QueryBuilder $queryBuilder)
33
    {
34 3
        $this->parameters[0] = $queryBuilder->normalizeArgument(
0 ignored issues
show
Bug Best Practice introduced by
The property parameters does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
35 3
            $this->parameters[0],
36 3
            ['Query', 'Reference']
37
        );
38 3
        if (isset($this->parameters[1])) {
39 2
            $this->parameters[1] = $queryBuilder->normalizeArgument(
40 2
                $this->parameters[1],
41 2
                ['Number', 'Query', 'Reference', 'Bind']
42
            );
43
        }
44 3
        if (isset($this->parameters[2])) {
45 1
            $this->parameters[2] = $queryBuilder->normalizeArgument(
46 1
                $this->parameters[2],
47 1
                ['Number', 'Query', 'Reference', 'Bind']
48
            );
49
        }
50 3
    }
51
52 2
    protected function normalizeTfidf(QueryBuilder $queryBuilder)
53
    {
54 2
        $this->parameters[0] = $queryBuilder->normalizeArgument(
0 ignored issues
show
Bug Best Practice introduced by
The property parameters does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
55 2
            $this->parameters[0],
56 2
            ['Query', 'Reference']
57
        );
58 2
        if (isset($this->parameters[1])) {
59 1
            $this->parameters[1] = $queryBuilder->normalizeArgument(
60 1
                $this->parameters[1],
61 1
                ['Boolean', 'Query', 'Reference', 'Bind']
62
            );
63
        }
64 2
    }
65
66 2
    protected function normalizeExists(QueryBuilder $queryBuilder)
67
    {
68 2
        $this->parameters[0] = $queryBuilder->normalizeArgument(
0 ignored issues
show
Bug Best Practice introduced by
The property parameters does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
69 2
            $this->parameters[0],
70 2
            ['Query', 'Reference']
71
        );
72 2
        if (isset($this->parameters[1])) {
73 1
            $this->parameters[1] = $queryBuilder->normalizeArgument(
74 1
                $this->parameters[1],
75 1
                ['Query', 'Reference', 'Bind']
76
            );
77
        }
78 2
    }
79
80 2
    protected function normalizeInRange(QueryBuilder $queryBuilder)
81
    {
82 2
        $this->parameters['path'] = $queryBuilder->normalizeArgument(
0 ignored issues
show
Bug Best Practice introduced by
The property parameters does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
83 2
            $this->parameters['path'],
84 2
            ['Query', 'Reference']
85
        );
86 2
        if (isset($this->parameters['low'])) {
87 2
            $this->parameters['low'] = $queryBuilder->normalizeArgument(
88 2
                $this->parameters['low'],
89 2
                ['Number', 'Boolean', 'Null', 'Query', 'Reference', 'Bind']
90
            );
91
        }
92 2
        if (isset($this->parameters['high'])) {
93 2
            $this->parameters['high'] = $queryBuilder->normalizeArgument(
94 2
                $this->parameters['high'],
95 2
                ['Number', 'Boolean', 'Null', 'Query', 'Reference', 'Bind']
96
            );
97
        }
98 2
        if (isset($this->parameters['includeLow'])) {
99 1
            $this->parameters['includeLow'] = $queryBuilder->normalizeArgument(
100 1
                $this->parameters['includeLow'],
101 1
                ['Boolean', 'Query', 'Reference', 'Bind']
102
            );
103
        }
104 2
        if (isset($this->parameters['includeHigh'])) {
105 1
            $this->parameters['includeHigh'] = $queryBuilder->normalizeArgument(
106 1
                $this->parameters['includeHigh'],
107 1
                ['Boolean', 'Query', 'Reference', 'Bind']
108
            );
109
        }
110 2
    }
111
112 2
    protected function normalizeLevenshteinMatch(QueryBuilder $queryBuilder)
113
    {
114 2
        $this->parameters['path'] = $queryBuilder->normalizeArgument(
0 ignored issues
show
Bug Best Practice introduced by
The property parameters does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
115 2
            $this->parameters['path'],
116 2
            ['Query', 'Reference']
117
        );
118 2
        $this->parameters['target'] = $queryBuilder->normalizeArgument(
119 2
            $this->parameters['target'],
120 2
            ['Query', 'Reference', 'Bind']
121
        );
122 2
        $this->parameters['distance'] = $queryBuilder->normalizeArgument(
123 2
            $this->parameters['distance'],
124 2
            ['Number', 'Reference', 'Bind']
125
        );
126
127 2
        if (isset($this->parameters['transpositions'])) {
128 1
            $this->parameters['transpositions'] = $queryBuilder->normalizeArgument(
129 1
                $this->parameters['transpositions'],
130 1
                ['Boolean', 'Query', 'Reference', 'Bind']
131
            );
132
        }
133 2
        if (isset($this->parameters['maxTerms'])) {
134 1
            $this->parameters['maxTerms'] = $queryBuilder->normalizeArgument(
135 1
                $this->parameters['maxTerms'],
136 1
                ['Number', 'Query', 'Reference', 'Bind']
137
            );
138
        }
139 2
        if (isset($this->parameters['prefix'])) {
140 1
            $this->parameters['prefix'] = $queryBuilder->normalizeArgument(
141 1
                $this->parameters['prefix'],
142 1
                ['Query', 'Reference', 'Bind']
143
            );
144
        }
145 2
    }
146
147 1
    protected function normalizeLike(QueryBuilder $queryBuilder)
148
    {
149 1
        $this->parameters['path'] = $queryBuilder->normalizeArgument(
0 ignored issues
show
Bug Best Practice introduced by
The property parameters does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
150 1
            $this->parameters['path'],
151 1
            ['Reference', 'Query']
152
        );
153 1
        $this->parameters['search'] = $queryBuilder->normalizeArgument(
154 1
            $this->parameters['search'],
155 1
            ['Reference', 'Query', 'Bind']
156
        );
157 1
    }
158
159 2
    protected function normalizeNgramMatch(QueryBuilder $queryBuilder)
160
    {
161 2
        $this->parameters['path'] = $queryBuilder->normalizeArgument(
0 ignored issues
show
Bug Best Practice introduced by
The property parameters does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
162 2
            $this->parameters['path'],
163 2
            ['Query', 'Reference']
164
        );
165 2
        $this->parameters['target'] = $queryBuilder->normalizeArgument(
166 2
            $this->parameters['target'],
167 2
            ['Query', 'Reference', 'Bind']
168
        );
169
170 2
        if (isset($this->parameters['threshold'])) {
171 1
            $this->parameters['threshold'] = $queryBuilder->normalizeArgument(
172 1
                $this->parameters['threshold'],
173 1
                ['Number', 'Reference', 'Bind']
174
            );
175
        }
176
177 2
        if (isset($this->parameters['analyzer'])) {
178 1
            $this->parameters['analyzer'] = $queryBuilder->normalizeArgument(
179 1
                $this->parameters['analyzer'],
180 1
                ['Query', 'Reference', 'Bind']
181
            );
182
        }
183 2
    }
184
185 3
    protected function normalizePhrase(QueryBuilder $queryBuilder)
186
    {
187 3
        foreach ($this->parameters as $key => $parameter) {
188 3
            if ($key === 0) {
189 3
                $this->parameters[$key] = $queryBuilder->normalizeArgument(
0 ignored issues
show
Bug Best Practice introduced by
The property parameters does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
190 3
                    $parameter,
191 3
                    ['Reference', 'Query', 'Bind']
192
                );
193
194 3
                continue;
195
            }
196 3
            $this->parameters[$key] = $queryBuilder->normalizeArgument(
197 3
                $parameter,
198 3
                ['Number', 'Reference', 'Query', 'Bind']
199
            );
200
        }
201 3
    }
202
}
203