ClienteException   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 5
eloc 10
c 2
b 0
f 0
dl 0
loc 57
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A getResponse() 0 3 1
A getHttpCode() 0 3 1
A __toString() 0 4 2
1
<?php
2
3
namespace PedroQuezado\Code\Correios;
4
5
use Exception;
6
7
/**
8
 * Class ClienteException
9
 * 
10
 * Esta classe representa exceções específicas para a interação com a API dos Correios.
11
 * Extende a classe base Exception do PHP.
12
 */
13
class ClienteException extends Exception
14
{
15
    /**
16
     * @var int Código HTTP retornado pela API dos Correios.
17
     */
18
    protected $httpCode;
19
20
    /**
21
     * @var mixed Resposta completa retornada pela API dos Correios.
22
     */
23
    protected $response;
24
25
    /**
26
     * ClienteException constructor.
27
     *
28
     * @param string $message Mensagem da exceção.
29
     * @param int $httpCode Código HTTP retornado pela API.
30
     * @param mixed $response Resposta completa da API.
31
     * @param int $code Código da exceção.
32
     * @param Exception|null $previous Exceção anterior para encadeamento.
33
     */
34
    public function __construct($message = "", $httpCode = 0, $response = null, $code = 0, Exception $previous = null)
35
    {
36
        $this->httpCode = $httpCode;
37
        $this->response = $response;
38
        parent::__construct($message, $code, $previous);
39
    }
40
41
    /**
42
     * Obtém o código HTTP retornado pela API.
43
     *
44
     * @return int Código HTTP.
45
     */
46
    public function getHttpCode()
47
    {
48
        return $this->httpCode;
49
    }
50
51
    /**
52
     * Obtém a resposta completa retornada pela API.
53
     *
54
     * @return mixed Resposta da API.
55
     */
56
    public function getResponse()
57
    {
58
        return $this->response;
59
    }
60
61
    /**
62
     * Representação da exceção como string.
63
     *
64
     * @return string Representação da exceção.
65
     */
66
    public function __toString()
67
    {
68
        $responseDetails = is_array($this->response) ? json_encode($this->response) : $this->response;
69
        return __CLASS__ . ": [{$this->code}]: {$this->message}\nHTTP Code: {$this->httpCode}\nResponse: {$responseDetails}\n";
70
    }
71
}
72