LinkStatsController::show()   A
last analyzed

Complexity

Conditions 3
Paths 2

Size

Total Lines 17

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 17
ccs 10
cts 10
cp 1
rs 9.7
c 0
b 0
f 0
cc 3
nc 2
nop 1
crap 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