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

Audit::getAllActivityFor()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
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