1 | <?php |
||
2 | |||
3 | namespace CodePhix\Asaas; |
||
4 | |||
5 | use CodePhix\Asaas\Connection; |
||
6 | use CodePhix\Asaas\Exceptions\ClienteException; |
||
7 | use Exception; |
||
8 | |||
9 | /** |
||
10 | * Class Cliente |
||
11 | * @package app\Asaas |
||
12 | * |
||
13 | * |
||
14 | \"name\": \"".((!empty($data['name'])) ? $data['name'] : '')."\", |
||
15 | \"email\": \"".((!empty($data['email'])) ? $data['email'] : '')."\", |
||
16 | \"company\": \"".((!empty($data['company'])) ? $data['company'] : '')."\", |
||
17 | \"phone\": \"".((!empty($data['phone'])) ? $data['phone'] : '')."\", |
||
18 | \"mobilePhone\": \"".((!empty($data['mobilePhone'])) ? $data['mobilePhone'] : '')."\", |
||
19 | \"postalCode\": \"".((!empty($data['postalCode'])) ? $data['postalCode'] : '')."\", |
||
20 | \"address\": \"".((!empty($data['address'])) ? $data['address'] : '')."\", |
||
21 | \"addressNumber\": \"".((!empty($data['addressNumber'])) ? $data['addressNumber'] : '')."\", |
||
22 | \"complement\": \"".((!empty($data['complement'])) ? $data['complement'] : '')."\", |
||
23 | \"province\": \"".((!empty($data['province'] )) ? $data['province'] : '')."\", |
||
24 | \"city\": \"".((!empty($data['city'])) ? $data['city'] : '')."\", |
||
25 | \"state\": \"".((!empty($data['state'])) ? $data['state'] : '')."\", |
||
26 | \"cpfCnpj\": \"".((!empty($data['cpfCnpj'])) ? $data['cpfCnpj'] : '')."\", |
||
27 | \"additionalEmails\": \"".((!empty($data['additionalEmails'])) ? $data['additionalEmails'] : '')."\", |
||
28 | \"notificationDisabled\": ".((!empty($data['notificationDisabled']) && $data['notificationDisabled'] == 1) ? 'true' : 'false').", |
||
29 | \"externalReference\": \"".((!empty($data['externalReference'])) ? $data['externalReference'] : '')."\" |
||
30 | */ |
||
31 | |||
32 | class Cliente |
||
33 | { |
||
34 | |||
35 | public $http; |
||
36 | protected $cliente; |
||
37 | |||
38 | public $cli; |
||
39 | |||
40 | |||
41 | public function __construct(Connection $connection) |
||
42 | { |
||
43 | $this->http = $connection; |
||
44 | } |
||
45 | |||
46 | /** |
||
47 | * Retorna array de clientes. |
||
48 | * @return array |
||
49 | */ |
||
50 | public function index() |
||
51 | { |
||
52 | return $this->http->get('/customers'); |
||
53 | } |
||
54 | |||
55 | // Retorna a listagem de clientes |
||
56 | public function getAll($filtros = false){ |
||
57 | $filtro = ''; |
||
58 | if(is_array($filtros)){ |
||
59 | if($filtros){ |
||
0 ignored issues
–
show
|
|||
60 | foreach($filtros as $key => $f){ |
||
61 | if(!empty($f)){ |
||
62 | if($filtro){ |
||
63 | $filtro .= '&'; |
||
64 | } |
||
65 | $filtro .= $key.'='.$f; |
||
66 | } |
||
67 | } |
||
68 | $filtro = '?'.$filtro; |
||
69 | } |
||
70 | } |
||
71 | return $this->http->get('/customers'.$filtro); |
||
72 | } |
||
73 | |||
74 | // Retorna os dados do cliente de acordo com o Id |
||
75 | public function getById($id){ |
||
76 | return $this->http->get('/customers/'.$id); |
||
77 | } |
||
78 | |||
79 | // Retorna os dados do cliente de acordo com o Email |
||
80 | public function getByEmail($email){ |
||
81 | $option = 'limit=1&email=' . $email; |
||
82 | return $this->http->get('/customers', $option); |
||
83 | } |
||
84 | |||
85 | // Insere um novo cliente |
||
86 | public function create(array $dadosCliente){ |
||
87 | $dadosCliente = $this->setCliente($dadosCliente); |
||
88 | if(!empty($dadosCliente['error'])){ |
||
89 | return $dadosCliente; |
||
90 | }else { |
||
91 | return $this->http->post('/customers', $dadosCliente); |
||
92 | } |
||
93 | } |
||
94 | |||
95 | // Atualiza os dados do cliente |
||
96 | public function update($id, array $dadosCliente){ |
||
97 | $dadosCliente = $this->setCliente($dadosCliente); |
||
98 | if(!empty($dadosCliente['error'])){ |
||
99 | return $dadosCliente; |
||
100 | }else { |
||
101 | return $this->http->post('/customers/' . $id, $dadosCliente); |
||
102 | } |
||
103 | } |
||
104 | |||
105 | // Deleta uma cliente |
||
106 | public function delete($id){ |
||
107 | return $this->http->get('/customers/'.$id,'','DELETE'); |
||
108 | } |
||
109 | |||
110 | |||
111 | |||
112 | |||
113 | public function get($client_id) { |
||
114 | return $this->http->get('/customers/' . $client_id); |
||
115 | } |
||
116 | |||
117 | /** |
||
118 | * Cria um novo cliente no Asaas. |
||
119 | * @param Array $cliente |
||
120 | * @return Boolean |
||
121 | */ |
||
122 | public function create2($cliente) |
||
123 | { |
||
124 | // Preenche as informações do cliente |
||
125 | $cliente = $this->setCliente($cliente); |
||
126 | |||
127 | // Faz o post e retorna array de resposta |
||
128 | return $this->http->post('/customers', ['form_params' => $cliente]); |
||
129 | |||
130 | } |
||
131 | |||
132 | /** |
||
133 | * Faz merge nas informações do cliente. |
||
134 | * |
||
135 | * @see https://asaasv3.docs.apiary.io/#reference/0/clientes/criar-novo-cliente |
||
136 | * @param Array $cliente |
||
137 | * @return Array |
||
138 | */ |
||
139 | public function setCliente($cliente) |
||
140 | { |
||
141 | try { |
||
142 | if ( ! $this->cliente_valid($cliente) ) { |
||
143 | return ClienteException::invalidClient(); |
||
144 | } |
||
145 | |||
146 | $this->cliente = array( |
||
147 | 'name' => '', |
||
148 | 'cpfCnpj' => '', |
||
149 | 'email' => '', |
||
150 | 'phone' => '', |
||
151 | 'mobilePhone' => '', |
||
152 | 'address' => '', |
||
153 | 'addressNumber' => '', |
||
154 | 'complement' => '', |
||
155 | 'province' => '', |
||
156 | 'postalCode' => '', |
||
157 | 'externalReference' => '', |
||
158 | 'notificationDisabled' => '', |
||
159 | 'additionalEmails' => '' |
||
160 | ); |
||
161 | |||
162 | $this->cliente = array_merge($this->cliente, $cliente); |
||
163 | return $this->cliente; |
||
164 | |||
165 | } catch (Exception $e) { |
||
166 | return 'Erro ao definir o cliente. - ' . $e->getMessage(); |
||
0 ignored issues
–
show
|
|||
167 | } |
||
168 | } |
||
169 | |||
170 | /** |
||
171 | * Verifica se os dados do cliente são válidos. |
||
172 | * |
||
173 | * @param array $cliente |
||
174 | * @return Boolean |
||
175 | */ |
||
176 | public function cliente_valid($cliente) |
||
177 | { |
||
178 | return ! ( (empty($cliente['name']) OR empty($cliente['cpfCnpj']) OR empty($cliente['email'])) ? 1 : '' ); |
||
179 | } |
||
180 | } |
This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.
Consider making the comparison explicit by using
empty(..)
or! empty(...)
instead.