ApiResponse::handle()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 9.568
c 0
b 0
f 0
cc 3
nc 3
nop 2
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