RequestorTrait::postMultipartOutAsync()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 3
dl 0
loc 3
ccs 3
cts 3
cp 1
crap 1
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
    public function put($endpoint, array $params = [], $return_response_object = false)
70
    {
71
        return CurlExecutor::execDecoded($this->getInternalCurl()->put($endpoint, $params), $return_response_object);
72
    }
73
74 1
    public function postMultipart($endpoint, array $params = [], $return_response_object = false)
75 1
    {
76 1
        return CurlExecutor::execDecoded($this->getInternalCurl()->postMultipart($endpoint, $params), $return_response_object);
77
    }
78
79 6
    public function streamingAsync($endpoint, callable $event_handler, array $params = [], callable $header_response_handler = null)
80 6
    {
81 6
        $handler = new StreamHandler($header_response_handler, $event_handler);
82 6
        $ch = $this->getInternalCurl()->streaming($endpoint, $params, $handler);
83
        try {
84 6
            yield $ch;
85 5
        } catch (CURLException $e) {
0 ignored issues
show
Unused Code introduced by
catch (\mpyw\Co\CURLException $e) is not reachable.

This check looks for unreachable code. It uses sophisticated control flow analysis techniques to find statements which will never be executed.

Unreachable code is most often the result of return, die or exit statements that have been added for debug purposes.

function fx() {
    try {
        doSomething();
        return true;
    }
    catch (\Exception $e) {
        return false;
    }

    return false;
}

In the above example, the last return false will never be executed, because a return statement has already been met in every possible execution path.

Loading history...
86 5
            if (!$handler->isHaltedByUser()) {
87 1
                throw $e;
88
            }
89
        }
90 5
        if (!$handler->isHaltedByUser()) {
91 1
            throw new \UnexpectedValueException('Streaming stopped unexpectedly.');
92
        }
93 4
    }
94
95 9
    public function streaming($endpoint, callable $event_handler, array $params = [], callable $header_response_handler = null)
96 9
    {
97 9
        $handler = new StreamHandler($header_response_handler, $event_handler);
98 9
        $ch = $this->getInternalCurl()->streaming($endpoint, $params, $handler);
99 9
        $result = curl_exec($ch);
100 7
        if (!$handler->isHaltedByUser() && $result === false) {
101 1
            throw new CURLException(curl_error($ch), curl_errno($ch), $ch);
102
        }
103 6
        if (!$handler->isHaltedByUser()) {
104 1
            throw new \UnexpectedValueException('Streaming stopped unexpectedly.');
105
        }
106 5
    }
107
108 1
    public function getOutAsync($endpoint, array $params = [], $return_response_object = false)
109 1
    {
110 1
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->getOut($endpoint, $params), $return_response_object));
111
        // @codeCoverageIgnoreStart
112
    }
113
    // @codeCoverageIgnoreEnd
114
115 1
    public function postOutAsync($endpoint, array $params = [], $return_response_object = false)
116 1
    {
117 1
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->postOut($endpoint, $params), $return_response_object));
118
        // @codeCoverageIgnoreStart
119
    }
120
    // @codeCoverageIgnoreEnd
121
122 1
    public function postMultipartOutAsync($endpoint, array $params = [], $return_response_object = false)
123 1
    {
124 1
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->postMultipartOut($endpoint, $params), $return_response_object));
125
        // @codeCoverageIgnoreStart
126
    }
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 1
    public function postMultipartOut($endpoint, array $params = [], $return_response_object = false)
140 1
    {
141 1
        return CurlExecutor::execDecoded($this->getInternalCurl()->postMultipartOut($endpoint, $params), $return_response_object);
142
    }
143
}
144