Completed
Push — master ( 5444fa...96b4a5 )
by Freek
03:22 queued 01:35
created

Fractal::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 4
rs 10
c 1
b 0
f 0
1
<?php
2
3
namespace Spatie\Fractal;
4
5
use League\Fractal\Manager;
6
use Spatie\Fractalistic\Fractal as Fractalistic;
7
8
class Fractal extends Fractalistic
9
{
10
    /** @param \League\Fractal\Manager $manager */
11
    public function __construct(Manager $manager)
12
    {
13
        parent::__construct($manager);
14
    }
15
16
    /**
17
     * Return a new JSON response.
18
     *
19
     * @param  callable|int $statusCode
20
     * @param  callabel|array $headers
21
     *
22
     * @return \Illuminate\Http\JsonResponse
23
     */
24
    public function respond($statusCode = 200, $headers = [])
25
    {
26
        $response = new Response();
27
28
        $response->setData($this->createData()->toArray());
29
30
        if (is_int($statusCode)) {
31
            $statusCode = function (Response $response) use ($statusCode) {
32
                return $response->setStatusCode($statusCode);
33
            };
34
        }
35
36
        if (is_array($headers)) {
37
            $headers = function (Response $response) use ($headers) {
38
                return $response->headers($headers);
39
            };
40
        }
41
42
        if (is_callable($statusCode)) {
43
            $statusCode($response);
44
        }
45
46
        if (is_callable($headers)) {
47
            $headers($response);
48
        }
49
50
        return $response;
51
    }
52
}
53