CleanupUuidOrName::cleanUsername()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Minepic\Http\Middleware;
6
7
use Illuminate\Http\Request;
8
9
class CleanupUuidOrName
10
{
11
    public function handle(Request $request, \Closure $next): mixed
12
    {
13
        /** @var array $route */
14
        $route = $request->route();
15
        if (isset($route[2]['uuid'])) {
16
            $route[2]['uuid'] = $this->cleanUuid($route[2]['uuid']);
17
        }
18
19
        if (isset($route[2]['username'])) {
20
            $route[2]['username'] = $this->cleanUsername($route[2]['username']);
21
        }
22
23
        $request->setRouteResolver(static function () use ($route) {
24
            return $route;
25
        });
26
27
        return $next($request);
28
    }
29
30
    private function cleanUuid(string $uuid): string
31
    {
32
        $uuid = (string) preg_replace("#\.png.*#", '', $uuid);
33
34
        return str_replace('-', '', $uuid);
35
    }
36
37
    private function cleanUsername(string $username): string
38
    {
39
        return preg_replace("#\.png$#", '', $username) ?? '';
40
    }
41
}
42