Completed
Push — master ( 9ca733...64ef21 )
by Arjay
10:55
created

AuditableTraitObserver::deleting()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 9
rs 9.9666
c 0
b 0
f 0
ccs 0
cts 0
cp 0
cc 2
nc 2
nop 1
crap 6
1
<?php
2
3
namespace Yajra\Auditable;
4
5
use Illuminate\Database\Eloquent\Model;
6
use Illuminate\Support\Facades\Schema;
7
8
class AuditableTraitObserver
9
{
10
    /**
11
     * Model's creating event hook.
12
     *
13
     * @param Model $model
14
     */
15
    public function creating(Model $model)
16
    {
17
        $createdBy = $model->getCreatedByColumn();
18
        $updatedBy = $model->getUpdatedByColumn();
19
20
        if (! $model->$createdBy) {
21
            $model->$createdBy = $this->getAuthenticatedUserId();
22
        }
23
24
        if (! $model->$updatedBy) {
25
            $model->$updatedBy = $this->getAuthenticatedUserId();
26
        }
27
    }
28
29
    /**
30
     * Get authenticated user id depending on model's auth guard.
31
     *
32
     * @return int
33
     */
34
    protected function getAuthenticatedUserId()
35
    {
36
        return auth()->check() ? auth()->id() : null;
37
    }
38
39
    /**
40
     * Model's updating event hook.
41
     *
42
     * @param Model $model
43
     */
44
    public function updating(Model $model)
45
    {
46
        $updatedBy = $model->getUpdatedByColumn();
47
48
        if (! $model->isDirty($updatedBy)) {
49
            $model->$updatedBy = $this->getAuthenticatedUserId();
50
        }
51
    }
52
}
53