LinkObserver   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 69.23%

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 3
dl 0
loc 41
rs 10
c 0
b 0
f 0
ccs 9
cts 13
cp 0.6923

3 Methods

Rating   Name   Duplication   Size   Complexity  
A created() 0 7 1
A updated() 0 5 1
A deleted() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace MuhamedDidovic\Shortener\Observers;
6
7
use Carbon\Carbon;
8
use Illuminate\Support\Facades\Cache;
9
use MuhamedDidovic\Shortener\Exceptions\CodeGenerationException;
10
use MuhamedDidovic\Shortener\Models\Link;
11
12
class LinkObserver
13
{
14
    /**
15
     * Handle the Link "created" event.
16
     *
17
     * @param Link $link
18
     * @return void
19
     * @throws CodeGenerationException
20
     */
21 17
    public function created(Link $link)
22
    {
23 17
        $link->update([
24 17
            'code'           => $link->getCode(),
25 17
            'last_requested' => Carbon::now(),
26
        ]);
27 17
    }
28
29
    /**
30
     * Handle the Link "updated" event.
31
     *
32
     * @param Link $link
33
     * @return void
34
     */
35 17
    public function updated(Link $link)
36
    {
37 17
        Cache::pull("link.{$link->code}");
38 17
        Cache::pull("stats.{$link->code}");
39 17
    }
40
41
    /**
42
     * Handle the Link "deleted" event.
43
     *
44
     * @param Link $link
45
     * @return void
46
     */
47
    public function deleted(Link $link)
48
    {
49
        Cache::pull("link.{$link->code}");
50
        Cache::pull("stats.{$link->code}");
51
    }
52
}
53