ApiResponse   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 2
dl 0
loc 32
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A handle() 0 22 3
1
<?php
2
3
namespace Igorsgm\LaravelApiResponses\Http\Middleware;
4
5
use Closure;
6
use Illuminate\Http\JsonResponse;
7
use Illuminate\Http\Request;
8
9
class ApiResponse
10
{
11
    /**
12
     * Handle an incoming request.
13
     *
14
     * @param  Request  $request
15
     * @param  Closure  $next
16
     * @return mixed
17
     */
18
    public function handle($request, Closure $next)
19
    {
20
        // First, set the header so any other middleware knows we're
21
        // dealing with a should-be JSON response.
22
        $request->headers->set('Accept', 'application/json');
23
24
        // Get the response
25
        $response = $next($request);
26
27
        if (!empty($response->exception)) {
28
            return response()
29
                ->exceptionError($response->exception, '', $response->status(), $response->headers->all());
30
        }
31
32
        // If the response is not strictly a JsonResponse, we make it
33
        if (!$response instanceof JsonResponse) {
34
            return response()
35
                ->success($response->content(), '', $response->status(), $response->headers->all());
36
        }
37
38
        return $response;
39
    }
40
}
41