LikeObserver::created()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 6
nc 2
nop 1
dl 0
loc 8
rs 10
c 1
b 0
f 0
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