LikeObserver   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
dl 0
loc 33
rs 10
c 1
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A created() 0 8 2
A deleted() 0 8 2
1
<?php
2
3
namespace Turahe\Likeable\Observers;
4
5
use Turahe\Likeable\Enums\LikeType;
6
use Turahe\Likeable\Events\ModelWasLiked;
7
use Turahe\Likeable\Events\ModelWasUnliked;
8
use Turahe\Likeable\Events\ModelWasDisliked;
9
use Turahe\Likeable\Events\ModelWasUndisliked;
10
use Turahe\Likeable\Contracts\Like as LikeContract;
11
use Turahe\Likeable\Contracts\LikeableService as LikeableServiceContract;
12
13
/**
14
 * Class LikeObserver.
15
 */
16
class LikeObserver
17
{
18
    /**
19
     * Handle the created event for the model.
20
     *
21
     * @param \Turahe\Likeable\Contracts\Like $like
22
     * @return void
23
     */
24
    public function created(LikeContract $like)
25
    {
26
        if ($like->type_id == LikeType::LIKE) {
27
            event(new ModelWasLiked($like->likeable, $like->user_id));
28
            app(LikeableServiceContract::class)->incrementLikesCount($like->likeable);
29
        } else {
30
            event(new ModelWasDisliked($like->likeable, $like->user_id));
31
            app(LikeableServiceContract::class)->incrementDislikesCount($like->likeable);
32
        }
33
    }
34
35
    /**
36
     * Handle the deleted event for the model.
37
     *
38
     * @param \Turahe\Likeable\Contracts\Like $like
39
     * @return void
40
     */
41
    public function deleted(LikeContract $like)
42
    {
43
        if ($like->type_id == LikeType::LIKE) {
44
            event(new ModelWasUnliked($like->likeable, $like->user_id));
45
            app(LikeableServiceContract::class)->decrementLikesCount($like->likeable);
46
        } else {
47
            event(new ModelWasUndisliked($like->likeable, $like->user_id));
48
            app(LikeableServiceContract::class)->decrementDislikesCount($like->likeable);
49
        }
50
    }
51
}
52