Passed
Push — ft/states ( 61e8cc...4cf7fd )
by Ben
06:59
created

Audit   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Test Coverage

Coverage 81.82%

Importance

Changes 0
Metric Value
wmc 5
eloc 9
dl 0
loc 30
ccs 9
cts 11
cp 0.8182
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A activity() 0 5 1
A getActivityBy() 0 3 1
A getActivity() 0 3 1
A ScopeAllActivityFor() 0 4 1
A getAllActivityFor() 0 3 1
1
<?php
2
3
namespace Thinktomorrow\Chief\Audit;
4
5
use Spatie\Activitylog\Models\Activity;
6
use Illuminate\Database\Eloquent\Model;
7
use Illuminate\Database\Eloquent\Builder;
8
use Spatie\Activitylog\ActivityLogger;
9
use Thinktomorrow\Chief\Users\User;
10
11
class Audit extends Activity
12
{
13
    public $with = ['causer'];
14
15 70
    public static function activity(string $logName = null): ActivityLogger
16
    {
17 70
        $defaultLogName = config('activitylog.default_log_name');
18
19 70
        return app(ActivityLogger::class)->useLog($logName ?? $defaultLogName);
20
    }
21
22
    public static function getAllActivityFor(Model $subject)
23
    {
24
        return self::allActivityFor($subject)->get();
25
    }
26
27 4
    public static function ScopeAllActivityFor(Builder $query, Model $subject): Builder
28
    {
29 4
        return $query
30
            ->where('subject_type', $subject->getMorphClass());
31
    }
32 4
33
    public static function getActivityBy(User $causer)
34
    {
35 4
        return self::causedBy($causer)->get()->sortByDesc('created_at');
36
    }
37
38 1
    public static function getActivity()
39
    {
40 1
        return self::all()->sortByDesc('created_at');
41
    }
42
}
43