MagiclinkMiddleware::badResponse()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
eloc 3
c 2
b 1
f 0
dl 0
loc 7
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace MagicLink\Middlewares;
4
5
use Closure;
6
use Illuminate\Http\Request;
7
use MagicLink\MagicLink;
8
use MagicLink\Responses\Response;
9
10
class MagiclinkMiddleware
11
{
12
    public function handle(Request $request, Closure $next)
13
    {
14
        $token = (string) $request->route('token');
15
16
        $magicLink = MagicLink::getValidMagicLinkByToken($token);
17
18
        if ($request->method() === 'HEAD') {
19
            return response()->noContent($magicLink ? 200 : 404);
20
        }
21
22
        if (! $magicLink) {
23
            return $this->badResponse();
24
        }
25
26
        $responseAccessCode = $magicLink->getResponseAccessCode();
27
28
        if ($responseAccessCode) {
29
            return $responseAccessCode;
30
        }
31
32
        $magicLink->visited();
33
34
        return $next($request);
35
    }
36
37
    protected function badResponse()
38
    {
39
        $responseClass = config('magiclink.invalid_response.class', Response::class);
40
41
        $response = new $responseClass();
42
43
        return $response(config('magiclink.invalid_response.options', []));
44
    }
45
}
46