LinkStatsController   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Test Coverage

Coverage 100%

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
A show() 0 17 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace MuhamedDidovic\Shortener\Controllers;
6
7
use Illuminate\Http\Request;
8
use Illuminate\Routing\Controller as BaseController;
9
use MuhamedDidovic\Shortener\Models\Link;
10
use MuhamedDidovic\Shortener\Traits\Response;
11
12
/**
13
 * Class LinkStatsController.
14
 */
15
class LinkStatsController extends BaseController
16
{
17
    use Response;
18
19
    /**
20
     * @param Request $request
21
     * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\JsonResponse|\Illuminate\Http\Response
22
     */
23 2
    public function show(Request $request)
24
    {
25 2
        $code = $request->get('code');
26
27 2
        $link = Link::byCode($code)->first();
28
29 2
        if ($link === null) {
30 1
            return response(null, 404);
31
        }
32
33 1
        return $this->linkResponse($link, [
34 1
            'requested_count' => (int) $link->requested_count,
35 1
            'used_count'      => (int) $link->used_count,
36 1
            'last_requested'  => $link->last_requested->toDateTimeString(),
37 1
            'last_used'       => $link->last_used ? $link->last_used->toDateTimeString() : null,
38
        ]);
39
    }
40
}
41