Passed
Pull Request — master (#2)
by Solo
04:12
created

RequestorTrait::getAsync()   A

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 delete($endpoint, array $params = [], $return_response_object = false)
60
    {
61
        return CurlExecutor::execDecoded($this->getInternalCurl()->delete($endpoint, $params), $return_response_object);
62
    }
63
64
    public function put($endpoint, array $params = [], $return_response_object = false)
65
    {
66
        return CurlExecutor::execDecoded($this->getInternalCurl()->put($endpoint, $params), $return_response_object);
67
    }
68
69 1
    public function postMultipart($endpoint, array $params = [], $return_response_object = false)
70 1
    {
71 1
        return CurlExecutor::execDecoded($this->getInternalCurl()->postMultipart($endpoint, $params), $return_response_object);
72
    }
73
74 6
    public function streamingAsync($endpoint, callable $event_handler, array $params = [], callable $header_response_handler = null)
75 6
    {
76 6
        $handler = new StreamHandler($header_response_handler, $event_handler);
77 6
        $ch = $this->getInternalCurl()->streaming($endpoint, $params, $handler);
78
        try {
79 6
            yield $ch;
80 5
        } catch (CURLException $e) {
1 ignored issue
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...
81 5
            if (!$handler->isHaltedByUser()) {
82 1
                throw $e;
83
            }
84
        }
85 5
        if (!$handler->isHaltedByUser()) {
86 1
            throw new \UnexpectedValueException('Streaming stopped unexpectedly.');
87
        }
88 4
    }
89
90 9
    public function streaming($endpoint, callable $event_handler, array $params = [], callable $header_response_handler = null)
91 9
    {
92 9
        $handler = new StreamHandler($header_response_handler, $event_handler);
93 9
        $ch = $this->getInternalCurl()->streaming($endpoint, $params, $handler);
94 9
        $result = curl_exec($ch);
95 7
        if (!$handler->isHaltedByUser() && $result === false) {
96 1
            throw new CURLException(curl_error($ch), curl_errno($ch), $ch);
97
        }
98 6
        if (!$handler->isHaltedByUser()) {
99 1
            throw new \UnexpectedValueException('Streaming stopped unexpectedly.');
100
        }
101 5
    }
102
103 1
    public function getOutAsync($endpoint, array $params = [], $return_response_object = false)
104 1
    {
105 1
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->getOut($endpoint, $params), $return_response_object));
106
        // @codeCoverageIgnoreStart
107
    }
108
    // @codeCoverageIgnoreEnd
109
110 1
    public function postOutAsync($endpoint, array $params = [], $return_response_object = false)
111 1
    {
112 1
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->postOut($endpoint, $params), $return_response_object));
113
        // @codeCoverageIgnoreStart
114
    }
115
    // @codeCoverageIgnoreEnd
116
117 1
    public function postMultipartOutAsync($endpoint, array $params = [], $return_response_object = false)
118 1
    {
119 1
        yield CoInterface::RETURN_WITH => (yield CurlExecutor::execDecodedAsync($this->getInternalCurl()->postMultipartOut($endpoint, $params), $return_response_object));
120
        // @codeCoverageIgnoreStart
121
    }
122
    // @codeCoverageIgnoreEnd
123
124 1
    public function getOut($endpoint, array $params = [], $return_response_object = false)
125 1
    {
126 1
        return CurlExecutor::execDecoded($this->getInternalCurl()->getOut($endpoint, $params), $return_response_object);
127
    }
128
129 1
    public function postOut($endpoint, array $params = [], $return_response_object = false)
130 1
    {
131 1
        return CurlExecutor::execDecoded($this->getInternalCurl()->postOut($endpoint, $params), $return_response_object);
132
    }
133
134 1
    public function postMultipartOut($endpoint, array $params = [], $return_response_object = false)
135 1
    {
136 1
        return CurlExecutor::execDecoded($this->getInternalCurl()->postMultipartOut($endpoint, $params), $return_response_object);
137
    }
138
}
139