ModifiesUrlRequestData   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 3
dl 0
loc 30
rs 10
c 0
b 0
f 0
ccs 9
cts 9
cp 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A handle() 0 20 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace MuhamedDidovic\Shortener\Middleware;
6
7
use Closure;
8
use Illuminate\Support\Facades\Validator;
9
10
class ModifiesUrlRequestData
11
{
12
    /**
13
     * Handle an incoming request.
14
     *
15
     * @param  \Illuminate\Http\Request  $request
16
     * @param  \Closure  $next
17
     * @return mixed
18
     */
19 17
    public function handle($request, Closure $next)
20
    {
21 17
        if (! $request->has('url')) {
22 7
            return $next($request);
23
        }
24
25 10
        $validator = Validator::make($request->only('url'), [
26
            'url' => [
27 10
                'regex:#((https?|ftp)://(\S*?\.\S*?))([\s)\[\]{},;"\':<]|\.\s|$)#i',
28
            ],
29
        ]);
30
31 10
        if ($validator->fails()) {
32 3
            $request->merge([
33 3
                'url' => 'http://'.$request->url,
34
            ]);
35
        }
36
37 10
        return $next($request);
38
    }
39
}
40