Passed
Push — master ( 6466f2...326f15 )
by Antônio
01:59
created

ApiRequisicao::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 4
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace OBRSDK\HttpClient\Nucleo;
4
5
/**
6
 * @author Antonio
7
 * @since 01/11/2017
8
 */
9
class ApiRequisicao extends \OBRSDK\DebugMode {
10
11
    /**
12
     *
13
     * @var \GuzzleHttp\Client 
14
     */
15
    private $cliente;
16
    private $tipoRequisicao;
17
    private $urlRequisicao;
18
19
    /**
20
     *
21
     * @var ApiData
22
     */
23
    private $data;
24
25
    public function __construct(\GuzzleHttp\Client $cliente, $tipoRequisicao, $urlRequisicao, ApiData $data) {
26
        $this->cliente = $cliente;
27
        $this->tipoRequisicao = $tipoRequisicao;
28
        $this->urlRequisicao = $urlRequisicao;
29
        $this->data = $data;
30
    }
31
32
    /**
33
     * 
34
     * @return string
35
     */
36
    public function getRespostaConteudo() {
37
        $this->debugDadosEnviado($this->urlRequisicao, $this->tipoRequisicao, $this->data->getData());
38
        try {
39
            $respostaRequisicao = $this->requisitarHttp();
40
            $conteudoRecebido = $respostaRequisicao->getBody()->getContents();
41
            $this->debugDadosRecebido($this->urlRequisicao, $this->tipoRequisicao, $conteudoRecebido, $respostaRequisicao->getHeaders(), $respostaRequisicao->getStatusCode());
42
43
            return $conteudoRecebido;
44
        } catch (\GuzzleHttp\Exception\BadResponseException $ex) {
45
            $resultado = $ex->getResponse()->getBody()->getContents();
46
            $this->debugDadosRecebido($this->urlRequisicao, $this->tipoRequisicao, $resultado, $ex->getResponse()->getHeaders(), $ex->getResponse()->getStatusCode());
47
            throw new \OBRSDK\Exceptions\RespostaException($resultado);
48
        }
49
    }
50
51
    private function requisitarHttp() {
52
        if ($this->data->getDataSize() > 0) {
53
            return $this->cliente->request($this->tipoRequisicao, $this->urlRequisicao, $this->data->getData());
54
        } else {
55
            return $this->cliente->request($this->tipoRequisicao, $this->urlRequisicao);
56
        }
57
    }
58
59
}
60