RequestLoggerMiddleware::handle()   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
cc 1
eloc 1
nc 1
nop 2
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace San4io\RequestLogger\Middleware;
4
5
use Closure;
6
use San4io\RequestLogger\Logger\RequestLogger;
7
use San4io\RequestLogger\Services\BenchmarkService;
8
use Symfony\Component\HttpFoundation\Request;
9
use Symfony\Component\HttpFoundation\Response;
10
use Symfony\Component\HttpKernel\TerminableInterface;
11
12
class RequestLoggerMiddleware implements TerminableInterface
13
{
14
    /**
15
     * Run the request filter.
16
     *
17
     * @param \Illuminate\Http\Request $request
18
     * @param \Closure                 $next
19
     *
20
     * @return mixed
21
     */
22
    public function handle($request, Closure $next)
23
    {
24
        return $next($request);
25
    }
26
27
    /**
28
     * @param \Illuminate\Http\Request $request
29
     * @param \Illuminate\Http\Response $response
30
     */
31
    public function terminate(Request $request, Response $response)
32
    {
33
        $this->stopBenchmark();
34
        $this->saveLog($request, $response);
35
    }
36
37
    /**
38
     *
39
     */
40
    protected function stopBenchmark()
41
    {
42
        /** @var BenchmarkService $application */
43
        $application = app('app.services.benchmark.application');
44
        $application->stop();
45
    }
46
47
    /**
48
     * @param \Illuminate\Http\Request $request
49
     * @param \Illuminate\Http\Response $response
50
     */
51
    protected function saveLog(Request $request, Response $response): void
52
    {
53
        /** @var RequestLogger $requestLogger */
54
        $requestLogger = app(RequestLogger::class);
55
        $requestLogger->log($request, $response);
56
    }
57
}
58