Handler   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 64
ccs 0
cts 15
cp 0
rs 10
c 0
b 0
f 0
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A render() 0 10 3
A report() 0 3 1
A unauthenticated() 0 9 2
1
<?php
2
3
namespace App\Exceptions;
4
5
use Exception;
6
use Illuminate\Auth\AuthenticationException;
7
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
8
9
class Handler extends ExceptionHandler
10
{
11
    /**
12
     * A list of the exception types that should not be reported.
13
     *
14
     * @var array
15
     */
16
    protected $dontReport = [
17
        \Illuminate\Auth\AuthenticationException::class,
18
        \Illuminate\Auth\Access\AuthorizationException::class,
19
        \Symfony\Component\HttpKernel\Exception\HttpException::class,
20
        \Illuminate\Database\Eloquent\ModelNotFoundException::class,
21
        \Illuminate\Session\TokenMismatchException::class,
22
        \Illuminate\Validation\ValidationException::class,
23
    ];
24
25
    /**
26
     * Report or log an exception.
27
     *
28
     * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
29
     *
30
     * @param  \Exception  $exception
31
     * @return void
32
     */
33
    public function report(Exception $exception)
34
    {
35
        parent::report($exception);
36
    }
37
38
    /**
39
     * Render an exception into an HTTP response.
40
     *
41
     * @param  \Illuminate\Http\Request  $request
42
     * @param  \Exception  $exception
43
     * @return \Illuminate\Http\Response
44
     */
45
    public function render($request, Exception $exception)
46
    {
47
        // Send a JSON 404 if using Api
48
        if ($exception instanceof ModelNotFoundException && $request->expectsJson()) {
0 ignored issues
show
Bug introduced by
The type App\Exceptions\ModelNotFoundException was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
49
            return response()->json([
0 ignored issues
show
Bug Best Practice introduced by
The expression return response()->json(...urce not found.'), 404) returns the type Illuminate\Http\JsonResponse which is incompatible with the documented return type Illuminate\Http\Response.
Loading history...
50
                'data' => 'Resource not found.'
51
            ], 404);
52
        }
53
    
54
        return parent::render($request, $exception);
0 ignored issues
show
Bug Best Practice introduced by
The expression return parent::render($request, $exception) also could return the type Illuminate\Http\JsonResponse which is incompatible with the documented return type Illuminate\Http\Response.
Loading history...
55
    }
56
57
    /**
58
     * Convert an authentication exception into an unauthenticated response.
59
     *
60
     * @param  \Illuminate\Http\Request  $request
61
     * @param  \Illuminate\Auth\AuthenticationException  $exception
62
     * @return \Illuminate\Http\Response
63
     */
64
    protected function unauthenticated($request, AuthenticationException $exception)
65
    {
66
        if ($request->expectsJson()) {
67
            return response()->json([ 
0 ignored issues
show
Bug Best Practice introduced by
The expression return response()->json(...nauthenticated.'), 401) returns the type Illuminate\Http\JsonResponse which is incompatible with the documented return type Illuminate\Http\Response.
Loading history...
68
                'error' => 'Unauthenticated.'
69
            ], 401);
70
        }
71
72
        return redirect()->guest(route('login'));
0 ignored issues
show
Bug Best Practice introduced by
The expression return redirect()->guest(route('login')) returns the type Illuminate\Http\RedirectResponse which is incompatible with the documented return type Illuminate\Http\Response.
Loading history...
73
    }
74
}
75