Completed
Push — master ( 38f1ea...fd6c7c )
by Matze
04:05
created

Gentime::processResponse()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 15
CRAP Score 1

Importance

Changes 3
Bugs 0 Features 1
Metric Value
c 3
b 0
f 1
dl 0
loc 22
ccs 15
cts 15
cp 1
rs 9.2
cc 1
eloc 15
nc 1
nop 2
crap 1
1
<?php
2
3
namespace BrainExe\Core\Middleware;
4
5
use BrainExe\Core\Annotations\Middleware;
6
use BrainExe\Core\Authentication\AnonymusUserVO;
7
use BrainExe\Core\Authentication\UserVO;
8
use BrainExe\Core\Traits\LoggerTrait;
9
use Symfony\Component\HttpFoundation\Request;
10
use Symfony\Component\HttpFoundation\Response;
11
12
/**
13
 * @Middleware("Middleware.Gentime")
14
 */
15
class Gentime extends AbstractMiddleware
16
{
17
18
    use LoggerTrait;
19
20
    /**
21
     * {@inheritdoc}
22
     */
23 2
    public function processResponse(Request $request, Response $response)
24
    {
25 2
        $startTime = $request->server->get('REQUEST_TIME_FLOAT');
26 2
        $user      = $request->attributes->get('user');
27 2
        $username  = $this->getUsername($user);
28
29 2
        $diff = microtime(true) - $startTime;
30 2
        $this->info(
31
            sprintf(
32 2
                '%0.2fms - %s',
33 2
                $diff * 1000,
34 2
                $request->getRequestUri()
35
            ),
36
            [
37 2
                'channel'  => 'gentime',
38 2
                'time'     => round($diff * 1000, 2),
39 2
                'route'    => $request->attributes->get('_route'),
40 2
                'userName' => $username,
41 2
                'userId'   => $request->attributes->get('user_id')
42
            ]
43
        );
44 2
    }
45
46
    /**
47
     * @param UserVO|null $user
48
     * @return string
49
     */
50 2
    protected function getUsername($user)
51
    {
52 2
        if ($user instanceof UserVO && !$user instanceof AnonymusUserVO) {
53
            /** @var UserVO $user */
54 1
            return $user->getUsername();
55
        } else {
56 1
            return '-anonymous-';
57
        }
58
    }
59
}
60