Passed
Push — main ( c8f39c...1a4746 )
by Osvaldo
02:04
created

ValidadorDeParametrosWhereAndOthers   A

Complexity

Total Complexity 14

Size/Duplication

Total Lines 70
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 30
c 1
b 0
f 0
dl 0
loc 70
rs 10
wmc 14

7 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A datos() 0 3 1
A setDatos() 0 8 1
A contieneValoresVacios() 0 7 3
A columnasSonString() 0 5 3
A numeroDeElementosValido() 0 5 2
A operadorValido() 0 5 3
1
<?php
2
namespace src\pdodatabase\elementos;
3
4
use Exception;
5
use src\interfaces\ValidadorDeParametrosInterface;
6
7
class ValidadorDeParametrosWhereAndOthers implements ValidadorDeParametrosInterface
8
{
9
    private $_operadoresValidos = [
10
        '=',
11
        '>',
12
        '<',
13
        '>=',
14
        '<=',
15
        '<>',
16
        '!=',
17
        '!<',
18
        '!>',
19
        'LIKE',
20
        'IN',
21
    ];
22
23
    private $_datos;
24
25
    public function __construct(array $datos)
26
    {
27
        $this->_datos = $this->setDatos($datos);
28
    }
29
30
    public function datos(): array
31
    {
32
        return $this->_datos;
33
    }
34
35
    private function setDatos($array): array
36
    {
37
        $this->numeroDeElementosValido($array);
38
        $this->contieneValoresVacios($array);
39
        $this->columnasSonString($array);
40
        $this->operadorValido($array);
41
42
        return $array;
43
    }
44
45
    private function contieneValoresVacios($array): void
46
    {
47
        foreach ($array as $value)
48
        {
49
            if(empty($value))
50
            {
51
                throw new Exception("Error Processing Request");
52
            }
53
        }
54
    }
55
56
    private function columnasSonString($array): void
57
    {
58
        if(!is_string($array[0]) || !is_string($array[3]))
59
        {
60
            throw new Exception("Error Processing Request");
61
        }
62
    }
63
64
    private function numeroDeElementosValido($array): void
65
    {
66
        if(count($array) !== 6)
67
        {
68
            throw new Exception("Error Processing Request");
69
        }
70
    }
71
72
    private function operadorValido($array): void
73
    {
74
        if(!in_array($array[1], $this->_operadoresValidos) || !in_array($array[4], $this->_operadoresValidos))
75
        {
76
            throw new Exception("Error Processing Request");
77
        }
78
    }
79
80
}