Completed
Push — master ( e6cd79...15515b )
by Mike
02:12
created

AbstractResponse::checkErrors()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 7
rs 9.4285
cc 2
eloc 5
nc 2
nop 1
1
<?php
2
3
namespace SugarAPI\SDK\Response\Abstracts;
4
5
use SugarAPI\SDK\Response\Interfaces\ResponseInterface;
6
7
abstract class AbstractResponse implements ResponseInterface{
8
9
    protected $CurlResponse;
10
    protected $headers;
11
    protected $body;
12
    protected $status;
13
    protected $error;
14
15
    public function __construct($curlResponse,$curlRequest){
16
        $this->CurlResponse = $curlResponse;
17
        if ($this->checkErrors($curlRequest)) {
18
            $this->extractResponse($curlRequest);
19
            $this->setStatus($curlRequest);
20
        }
21
    }
22
23
    protected function setStatus($curlRequest){
24
        $this->status = curl_getinfo($curlRequest,CURLINFO_HTTP_CODE);
25
    }
26
27
    protected function extractResponse($curlRequest){
28
        $header_size = curl_getinfo($curlRequest,CURLINFO_HEADER_SIZE);
29
        $this->headers = substr($this->CurlResponse, 0, $header_size);
30
        $this->body = substr($this->CurlResponse, $header_size);
31
    }
32
33
    protected function checkErrors($curlRequest){
34
        if (curl_errno($curlRequest) !== CURLE_OK) {
35
            $this->error = curl_error($curlRequest);
36
            return false;
37
        }
38
        return true;
39
    }
40
41
    /**
42
     * @inheritdoc
43
     */
44
    public function getStatus(){
45
        return $this->status;
46
    }
47
48
    /**
49
     * @inheritdoc
50
     */
51
    public function getBody() {
52
        return $this->body;
53
    }
54
55
    /**
56
     * @inheritdoc
57
     */
58
    public function getHeaders() {
59
        return $this->headers;
60
    }
61
62
    /**
63
     * @inheritdoc
64
     */
65
    public function getError(){
66
        return $this->error;
67
    }
68
69
}