Completed
Pull Request — master (#50)
by Tobias
02:39
created

CurlCommandFormatter::formatResponse()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Http\Message\Formatter;
4
5
use Http\Message\Formatter;
6
use Psr\Http\Message\MessageInterface;
7
use Psr\Http\Message\RequestInterface;
8
use Psr\Http\Message\ResponseInterface;
9
10
/**
11
 * A formatter that prints a cURL command for HTTP requests.
12
 *
13
 * @author Tobias Nyholm <[email protected]>
14
 */
15
class CurlCommandFormatter implements Formatter
16
{
17
    /**
18
     * {@inheritdoc}
19
     */
20 2
    public function formatRequest(RequestInterface $request)
21
    {
22 2
        $command = sprintf('curl \'%s\'', $request->getUri());
23 2
        if ($request->getProtocolVersion() === '1.0') {
24
            $command.=' --http1.0';
25 2
        } elseif ($request->getProtocolVersion() === '2.0') {
26 1
            $command.=' --http2';
27 1
        }
28
29 2
        $command .= ' --request '.$request->getMethod();
30
31 2
        foreach ($request->getHeaders() as $name => $values) {
32 1
            $command .= sprintf(' -H \'%s: %s\'',$name, $request->getHeaderLine($name));
33 2
        }
34
35 2
        $body = $request->getBody()->__toString();
36 2
        if (!empty($body)) {
37 1
            $command .= sprintf(' --data \'%s\'',$body);
38 1
        }
39
40 2
        return $command;
41
    }
42
43
    /**
44
     * {@inheritdoc}
45
     */
46 1
    public function formatResponse(ResponseInterface $response)
47
    {
48 1
        return '';
49
    }
50
}
51