Test Failed
Push — master ( 4ac754...8cf9e8 )
by Solo
02:34
created

RequestorTrait::postJson()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 3
dl 0
loc 3
ccs 0
cts 3
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace mpyw\Cowitter\Traits;
4
5
use mpyw\Co\CoInterface;
6
use mpyw\Co\CURLException;
7
use mpyw\Cowitter\Components\StreamHandler;
8
use mpyw\Cowitter\Helpers\CurlExecutor;
9
10
trait RequestorTrait
11
{
12
    abstract protected function getInternalCurl();
13
14 6
    public function getAsync($endpoint, array $params = [], $return_response_object = false)
15 6
    {
16 6
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->get($endpoint, $params), $return_response_object));
17
        // @codeCoverageIgnoreStart
18
    }
19
    // @codeCoverageIgnoreEnd
20
21 11
    public function postAsync($endpoint, array $params = [], $return_response_object = false)
22 11
    {
23 11
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->post($endpoint, $params), $return_response_object));
24
        // @codeCoverageIgnoreStart
25
    }
26
    // @codeCoverageIgnoreEnd
27
28
    public function deleteAsync($endpoint, array $params = [], $return_response_object = false)
29
    {
30
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->delete($endpoint, $params), $return_response_object));
31
        // @codeCoverageIgnoreStart
32
    }
33
    // @codeCoverageIgnoreEnd
34
35
    public function putAsync($endpoint, array $params = [], $return_response_object = false)
36
    {
37
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->put($endpoint, $params), $return_response_object));
38
        // @codeCoverageIgnoreStart
39
    }
40
    // @codeCoverageIgnoreEnd
41
42 11
    public function postMultipartAsync($endpoint, array $params = [], $return_response_object = false)
43 11
    {
44 11
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->postMultipart($endpoint, $params), $return_response_object));
45
        // @codeCoverageIgnoreStart
46
    }
47
    // @codeCoverageIgnoreEnd
48
49 6
    public function get($endpoint, array $params = [], $return_response_object = false)
50 6
    {
51 6
        return CurlExecutor::execDecoded($this->getInternalCurl()->get($endpoint, $params), $return_response_object);
52
    }
53
54 5
    public function post($endpoint, array $params = [], $return_response_object = false)
55 5
    {
56 5
        return CurlExecutor::execDecoded($this->getInternalCurl()->post($endpoint, $params), $return_response_object);
57
    }
58
59
    public function postJson($endpoint, array $params = [], $return_response_object = false)
60
    {
61
        return CurlExecutor::execDecoded($this->getInternalCurl()->postJson($endpoint, $params), $return_response_object);
62
    }
63
64
    public function delete($endpoint, array $params = [], $return_response_object = false)
65
    {
66
        return CurlExecutor::execDecoded($this->getInternalCurl()->delete($endpoint, $params), $return_response_object);
67
    }
68
69 1
    public function put($endpoint, array $params = [], $return_response_object = false)
70 1
    {
71 1
        return CurlExecutor::execDecoded($this->getInternalCurl()->put($endpoint, $params), $return_response_object);
72
    }
73
74 6
    public function postMultipart($endpoint, array $params = [], $return_response_object = false)
75 6
    {
76 6
        return CurlExecutor::execDecoded($this->getInternalCurl()->postMultipart($endpoint, $params), $return_response_object);
77 6
    }
78
79 6
    public function streamingAsync($endpoint, callable $event_handler, array $params = [], callable $header_response_handler = null)
80 5
    {
81 5
        $handler = new StreamHandler($header_response_handler, $event_handler);
82 1
        $ch = $this->getInternalCurl()->streaming($endpoint, $params, $handler);
83
        try {
84
            yield $ch;
85 5
        } catch (CURLException $e) {
86 1
            if (!$handler->isHaltedByUser()) {
87
                throw $e;
88 4
            }
89
        }
90 9
        if (!$handler->isHaltedByUser()) {
91 9
            throw new \UnexpectedValueException('Streaming stopped unexpectedly.');
92 9
        }
93 9
    }
94 9
95 7
    public function streaming($endpoint, callable $event_handler, array $params = [], callable $header_response_handler = null)
96 1
    {
97
        $handler = new StreamHandler($header_response_handler, $event_handler);
98 6
        $ch = $this->getInternalCurl()->streaming($endpoint, $params, $handler);
99 1
        $result = curl_exec($ch);
100
        if (!$handler->isHaltedByUser() && $result === false) {
101 5
            throw new CURLException(curl_error($ch), curl_errno($ch), $ch);
102
        }
103 1
        if (!$handler->isHaltedByUser()) {
104 1
            throw new \UnexpectedValueException('Streaming stopped unexpectedly.');
105 1
        }
106
    }
107
108
    public function getOutAsync($endpoint, array $params = [], $return_response_object = false)
109
    {
110 1
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->getOut($endpoint, $params), $return_response_object));
111 1
        // @codeCoverageIgnoreStart
112 1
    }
113
    // @codeCoverageIgnoreEnd
114
115
    public function postOutAsync($endpoint, array $params = [], $return_response_object = false)
116
    {
117 1
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->postOut($endpoint, $params), $return_response_object));
118 1
        // @codeCoverageIgnoreStart
119 1
    }
120
    // @codeCoverageIgnoreEnd
121
122
    public function postMultipartOutAsync($endpoint, array $params = [], $return_response_object = false)
123
    {
124 1
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->postMultipartOut($endpoint, $params), $return_response_object));
125 1
        // @codeCoverageIgnoreStart
126 1
    }
127
    // @codeCoverageIgnoreEnd
128
129 1
    public function getOut($endpoint, array $params = [], $return_response_object = false)
130 1
    {
131 1
        return CurlExecutor::execDecoded($this->getInternalCurl()->getOut($endpoint, $params), $return_response_object);
132
    }
133
134 1
    public function postOut($endpoint, array $params = [], $return_response_object = false)
135 1
    {
136 1
        return CurlExecutor::execDecoded($this->getInternalCurl()->postOut($endpoint, $params), $return_response_object);
137
    }
138
139
    public function postMultipartOut($endpoint, array $params = [], $return_response_object = false)
140
    {
141
        return CurlExecutor::execDecoded($this->getInternalCurl()->postMultipartOut($endpoint, $params), $return_response_object);
142
    }
143
}
144