Passed
Push — master ( ceccb7...d37f4e )
by Rougin
02:14
created

Request   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 51
ccs 22
cts 22
cp 1
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A uploaded() 0 17 3
A __construct() 0 19 1
1
<?php
2
3
namespace Zapheus\Bridge\Psr\Zapheus;
4
5
use Psr\Http\Message\ServerRequestInterface;
6
use Zapheus\Http\Message\Request as ZapheusRequest;
7
8
/**
9
 * PSR-07 to Zapheus Server Request Bridge
10
 *
11
 * @package Zapheus
12
 * @author  Rougin Royce Gutib <[email protected]>
13
 */
14
class Request extends ZapheusRequest
15
{
16
    /**
17
     * Initializes the server request instance.
18
     *
19
     * @param \Psr\Http\Message\ServerRequestInterface $request
20
     */
21 27
    public function __construct(ServerRequestInterface $request)
22
    {
23 27
        $data = (array) $request->getParsedBody();
24
25 27
        $cookies = $request->getCookieParams();
26
27 27
        parent::__construct($request->getServerParams(), $cookies, $data);
28
29 27
        $this->set('files', $this->uploaded($request));
30
31 27
        $this->set('attributes', $request->getAttributes());
32
33 27
        $this->set('headers', (array) $request->getHeaders());
34
35 27
        $this->set('uri', new Uri($request->getUri()));
36
37 27
        $this->set('stream', new Stream($request->getBody()));
38
39 27
        $this->set('version', $request->getProtocolVersion());
40 27
    }
41
42
    /**
43
     * Returns an array of uploaded files.
44
     *
45
     * @param  \Psr\Http\Message\ServerRequestInterface $request
46
     * @return \Zapheus\Http\Message\FileInterface[]
47
     */
48 27
    protected function uploaded(ServerRequestInterface $request)
49
    {
50 27
        list($items, $uploaded) = array(array(), array());
51
52 27
        $items = $request->getUploadedFiles();
53
54 27
        foreach ((array) $items as $key => $files) {
55 27
            $uploaded[$key] = array();
56
57 27
            foreach ((array) $files as $file) {
58 27
                $item = new File($file);
59
60 27
                array_push($uploaded[$key], $item);
61 18
            }
62 18
        }
63
64 27
        return (array) $uploaded;
65
    }
66
}
67