Completed
Pull Request — master (#75)
by Freek
01:46
created

Fractal   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
dl 0
loc 45
rs 10
c 0
b 0
f 0
wmc 6
lcom 0
cbo 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
B respond() 0 28 5
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