Code Duplication    Length = 15-19 lines in 2 locations

src/Http/Artax.php 2 locations

@@ 22-40 (lines=19) @@
19
        $this->client = $client;
20
    }
21
22
    public function post(Url $url, Header $header, Body $body, int $flags = 0): Promise
23
    {
24
        $request = (new Request)
25
            ->setMethod('POST')
26
            ->setUri($url->getUrl())
27
            ->setAllHeaders([
28
                'Authorization' => $header->getHeader(),
29
                'Content-Type'  => 'application/x-www-form-urlencoded',
30
            ])
31
            ->setBody($this->getBodyString($body))
32
        ;
33
34
        $options = [];
35
        if ($flags & Client::OP_STREAM) {
36
            $options[ArtaxClient::OP_MS_TRANSFER_TIMEOUT] = -1;
37
        }
38
39
        return $this->client->request($request, $options);
40
    }
41
42
    private function getBodyString(Body $body): string
43
    {
@@ 56-70 (lines=15) @@
53
        return $bodyString;
54
    }
55
56
    public function get(Url $url, Header $header, array $parameters, int $flags = 0): Promise
57
    {
58
        $request = (new Request)
59
            ->setMethod('GET')
60
            ->setUri($url->getUrl() . $this->buildQueryString(...$parameters))
61
            ->setAllHeaders(['Authorization' => $header->getHeader()])
62
        ;
63
64
        $options = [];
65
        if ($flags & Client::OP_STREAM) {
66
            $options[ArtaxClient::OP_MS_TRANSFER_TIMEOUT] = -1;
67
        }
68
69
        return $this->client->request($request, $options);
70
    }
71
72
    private function buildQueryString(Parameter ...$parameters): string
73
    {