Passed
Push — main ( 409525...fff42a )
by Tan
02:28
created

LikeCount::lovesCount()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 1
c 1
b 0
f 1
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
namespace CSlant\LaravelLike\Traits;
4
5
use Illuminate\Database\Eloquent\Model;
6
7
/**
8
 * Trait LikeCount
9
 *
10
 * @package CSlant\LaravelLike\Traits
11
 * @mixin Model
12
 */
13
trait LikeCount
14
{
15
    /**
16
     * Get the count of likes.
17
     *
18
     * @return int
19
     */
20
    public function likesCount(): int
21
    {
22
        return $this->likesTo()->count();
0 ignored issues
show
Bug introduced by
The method likesTo() does not exist on CSlant\LaravelLike\Traits\LikeCount. Did you maybe mean likesCount()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

22
        return $this->/** @scrutinizer ignore-call */ likesTo()->count();

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
23
    }
24
25
    /**
26
     * Get the count of dislikes.
27
     *
28
     * @return int
29
     */
30
    public function dislikesCount(): int
31
    {
32
        return $this->dislikesTo()->count();
0 ignored issues
show
Bug introduced by
The method dislikesTo() does not exist on CSlant\LaravelLike\Traits\LikeCount. Did you maybe mean dislikesCount()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

32
        return $this->/** @scrutinizer ignore-call */ dislikesTo()->count();

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
33
    }
34
35
    /**
36
     * Get digital count.
37
     *
38
     * @param $count
39
     *
40
     * @return string
41
     */
42
    public function countDigital($count): string
43
    {
44
        if ($count < 1000) {
45
            return $count;
46
        }
47
48
        if ($count < 1000000) {
49
            return round($count / 1000, 1) . 'K';
50
        }
51
52
        return round($count / 1000000, 1) . 'M';
53
    }
54
55
    /**
56
     * Get the count of likes in digital format.
57
     *
58
     * @return string
59
     */
60
    public function likesCountDigital(): string
61
    {
62
        return $this->countDigital($this->likesCount());
63
    }
64
65
    /**
66
     * Get the count of dislikes in digital format.
67
     *
68
     * @return string
69
     */
70
    public function dislikesCountDigital(): string
71
    {
72
        return $this->countDigital($this->dislikesCount());
73
    }
74
}
75