Passed
Push — master ( 9a4b58...860dbf )
by Cesar
07:21 queued 18s
created

MagiclinkMiddleware::handle()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 19
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 1 Features 1
Metric Value
eloc 9
c 3
b 1
f 1
dl 0
loc 19
rs 9.9666
cc 3
nc 3
nop 2
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 (! $magicLink) {
19
            return $this->badResponse();
20
        }
21
22
        $responseAccessCode = $magicLink->getResponseAccessCode();
23
24
        if ($responseAccessCode) {
25
            return $responseAccessCode;
26
        }
27
28
        $magicLink->visited();
29
30
        return $next($request);
31
    }
32
33
    protected function badResponse()
34
    {
35
        $responseClass = config('magiclink.invalid_response.class', Response::class);
36
37
        $response = new $responseClass;
38
39
        return $response(config('magiclink.invalid_response.options', []));
40
    }
41
}
42