GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

ResponseServiceProvider   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 78
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 5
dl 0
loc 78
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A boot() 0 5 1
A getSerializer() 0 4 1
A bootResponse() 0 26 2
A register() 0 4 1
A registerMacro() 0 6 1
1
<?php
2
3
namespace EllipseSynergie\ApiResponse\Laravel;
4
5
use EllipseSynergie\ApiResponse\Serializer\Serializer;
6
use Illuminate\Support\ServiceProvider;
7
use League\Fractal\Manager;
8
9
/**
10
 * Class ResponseServiceProvider
11
 *
12
 * For the full copyright and license information, please view the LICENSE
13
 * file that was distributed with this source code.
14
 *
15
 * @package EllipseSynergie\ApiResponse\Laravel
16
 * @author Maxime Beaudoin <[email protected]>
17
 */
18
class ResponseServiceProvider extends ServiceProvider
19
{
20
    /**
21
     * Register the service provider.
22
     *
23
     * @return void
24
     */
25
    public function boot()
26
    {
27
        $response = $this->bootResponse();
28
        $this->registerMacro($response);
0 ignored issues
show
Deprecated Code introduced by
The method EllipseSynergie\ApiRespo...ovider::registerMacro() has been deprecated with message: We still register macro for backward compatibility, but DO NOT USE THIS MACRO ANYMORE !

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
29
    }
30
31
    /**
32
     * Override this to use your own serializer.
33
     *
34
     * @return Serializer
35
     */
36
    protected function getSerializer()
37
    {
38
        return new Serializer();
39
    }
40
41
    /**
42
     * Boot response
43
     *
44
     * @return Response
45
     */
46
    protected function bootResponse()
47
    {
48
        $manager = new Manager;
49
50
        // Custom serializer because DataArraySerializer doesn't provide the opportunity to change the resource key
51
        $manager->setSerializer($this->getSerializer());
52
53
        //Get includes from request
54
        $includes = $this->app['Illuminate\Http\Request']->get('include');
55
56
        //If includes is not already a array
57
        if(!is_array($includes)){
58
            $includes = explode(',', $includes);
59
        }
60
61
        // Are we going to try and include embedded data?
62
        $manager->parseIncludes($includes);
63
64
        // Return the Response object
65
        $response = new Response($manager);
66
67
        //Set the response instance properly
68
        $this->app->instance('EllipseSynergie\ApiResponse\Contracts\Response', $response);
69
70
        return $response;
71
    }
72
73
    /**
74
     * Register the service provider.
75
     *
76
     * @return void
77
     */
78
    public function register()
79
    {
80
        //
81
    }
82
83
    /**
84
     * Register response macro
85
     *
86
     * @deprecated We still register macro for backward compatibility, but DO NOT USE THIS MACRO ANYMORE !
87
     * @param Response $response
88
     */
89
    private function registerMacro($response)
90
    {
91
        \Response::macro('api', function () use ($response) {
0 ignored issues
show
Bug introduced by
The method macro() does not seem to exist on object<Illuminate\Contra...outing\ResponseFactory>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
92
            return $response;
93
        });
94
    }
95
}
96