Completed
Push — master ( 00c081...e7017e )
by Jasper
24s queued 23s
created

JsonapiParser::buildMeta()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Swis\JsonApi\Client\Parsers;
4
5
use Art4\JsonApiClient\Jsonapi as JsonApiJsonapi;
6
use Art4\JsonApiClient\Meta as JsonApiMeta;
7
use Swis\JsonApi\Client\Jsonapi;
8
use Swis\JsonApi\Client\Meta;
9
10
/**
11
 * @internal
12
 */
13
class JsonapiParser
14
{
15
    /**
16
     * @var \Swis\JsonApi\Client\Parsers\MetaParser
17
     */
18
    private $metaParser;
19
20
    /**
21
     * @param \Swis\JsonApi\Client\Parsers\MetaParser $metaParser
22
     */
23 85
    public function __construct(MetaParser $metaParser)
24
    {
25 85
        $this->metaParser = $metaParser;
26 85
    }
27
28
    /**
29
     * @param \Art4\JsonApiClient\Jsonapi $jsonApi
30
     *
31
     * @return \Swis\JsonApi\Client\Jsonapi
32
     */
33 10
    public function parse(JsonApiJsonapi $jsonApi): Jsonapi
34
    {
35 10
        return new Jsonapi(
36 10
            $jsonApi->has('version') ? $jsonApi->get('version') : null,
37 10
            $jsonApi->has('meta') ? $this->buildMeta($jsonApi->get('meta')) : null
38
        );
39
    }
40
41
    /**
42
     * @param \Art4\JsonApiClient\Meta $meta
43
     *
44
     * @return \Swis\JsonApi\Client\Meta
45
     */
46 5
    private function buildMeta(JsonApiMeta $meta): Meta
47
    {
48 5
        return $this->metaParser->parse($meta);
49
    }
50
}
51