Cep::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 3
b 0
f 0
nc 1
nop 2
dl 0
loc 5
rs 9.4285
1
<?php
2
3
namespace ByJG\WebService;
4
5
/**
6
 * Classe para consulta de CEP utilizaçao o WebService ByJG
7
 * 2009-01-19
8
 * 2014-10-17
9
 *
10
 * Joao Gilberto Magalhaes
11
 * http://www.byjg.com.br/
12
 */
13
class Cep extends BaseService
14
{
15
16
    /**
17
     *
18
     * @param string $username
19
     * @param string $password
20
     */
21
    public function __construct($username, $password)
22
    {
23
        parent::__construct($username, $password);
24
        $this->_service = "cep";
25
    }
26
27
    /**
28
     * Obter a versão do WebService
29
     * 
30
     * @return string
31
     */
32
    public function obterVersao()
33
    {
34
        return $this->conectarServer("obterversao", array());
35
    }
36
37
    protected function parseCep($linha, $cep)
38
    {
39
        $inc = $cep ? 1 : 0;
40
41
        $info   = explode(', ', $linha);
42
        $result = array(
43
            'logradouro' => str_replace('OK|', '', isset($info[0 + $inc]) ? $info[0 + $inc] : ""),
44
            'bairro'     => isset($info[1 + $inc]) ? $info[1 + $inc] : "",
45
            'cidade'     => isset($info[2 + $inc]) ? $info[2 + $inc] : "",
46
            'uf'         => isset($info[3 + $inc]) ? $info[3 + $inc] : "",
47
            'ibge'       => isset($info[4 + $inc]) ? $info[4 + $inc] : ""
48
        );
49
50
        if ($cep) {
51
            $result['cep'] = $info[0];
52
        }
53
54
        return $result;
55
    }
56
57
    /**
58
     * Obter o Logradouro à partir de um CEP
59
     *
60
     * @param string $cep
61
     * @return string
62
     */
63
    public function obterLogradouro($cep)
64
    {
65
        $params = array(
66
            "cep" => $cep
67
        );
68
69
        $result = $this->conectarServer("obterlogradouroauth", $params);
70
        if ($result['status'] == 'OK') {
71
            $result['data']['code'] = 0;
72
73
            $result['data']['info'] = $this->parseCep($result['raw'], false);
74
        }
75
76
        return $result;
77
    }
78
79
    /**
80
     * Retorna o CEP à partir do nome do logradouro, localidade e unidade federativa. Esse método requer autenticação de usuário. Se autenticado, retorna as 20 primeiras linhas encontradas.
81
     *
82
     * @param string $logradouro
83
     * @param string $localidade
84
     * @param string $uf
85
     * @return string
86
     */
87
    public function obterCEP($logradouro, $localidade, $uf)
88
    {
89
        $params = array(
90
            "logradouro" => $logradouro,
91
            "localidade" => $localidade,
92
            "UF"         => $uf
93
        );
94
95
        $result = $this->conectarServer("obtercepauth", $params);
96
97
        if ($result["status"] == 'OK') {
98
            $result['data']['code'] = 0;
99
100
            $info                   = explode('|', $result['raw']);
101
            $result['data']['info'] = array();
102
            foreach (array_slice($info, 2) as $linha) {
103
                $result['data']['info'][] = $this->parseCep($linha, true);
104
            }
105
        }
106
107
        return $result;
108
    }
109
}
110