Passed
Branch 3.0.0 (dcfee6)
by Pieter
02:48
created

ApiResourceFacadeResponse   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
c 1
b 0
f 0
dl 0
loc 47
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getResponse() 0 3 1
A __construct() 0 8 1
A getResource() 0 3 1
A getNormalizedData() 0 3 1
1
<?php
2
3
namespace W2w\Lib\Apie\Core\Models;
4
5
use Psr\Http\Message\ResponseInterface;
6
use W2w\Lib\Apie\Interfaces\ResourceSerializerInterface;
7
8
/**
9
 * Data class returned by ApiResourceFacade.
10
 */
11
class ApiResourceFacadeResponse
12
{
13
    private $serializer;
14
15
    private $resource;
16
17
    private $acceptHeader;
18
19
    /**
20
     * @param ResourceSerializerInterface $serializer
21
     * @param mixed $resource
22
     * @param string|null $acceptHeader
23
     */
24
    public function __construct(
25
        ResourceSerializerInterface $serializer,
26
        $resource,
27
        ?string $acceptHeader
28
    ) {
29
        $this->serializer = $serializer;
30
        $this->resource = $resource;
31
        $this->acceptHeader = $acceptHeader;
32
    }
33
34
    /**
35
     * @return mixed
36
     */
37
    public function getResource()
38
    {
39
        return $this->resource;
40
    }
41
42
    /**
43
     * @return ResponseInterface
44
     */
45
    public function getResponse(): ResponseInterface
46
    {
47
        return $this->serializer->toResponse($this->resource, $this->acceptHeader ?? 'application/json');
48
    }
49
50
    /**
51
     * Gets data the way we would send it normalized.
52
     *
53
     * @return mixed
54
     */
55
    public function getNormalizedData()
56
    {
57
        return $this->serializer->normalize($this->resource, $this->acceptHeader ?? 'application/json');
58
    }
59
}
60