Passed
Push — master ( b61a9d...24e034 )
by Faiq
04:42
created

Common::getLogs()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 6
nc 3
nop 1
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace App;
4
5
use Illuminate\Support\Facades\Auth;
6
7
class Common
8
{
9
10
    /**
11
     * Register new activity log
12
     *
13
     * @param $data
14
     * @return bool
15
     */
16
    public static function registerLog($data)
17
    {
18
        $log = new Log;
19
20
        $log->action = $data['action'];
21
        $log->target = $data['target'];
22
        $log->prefix = $data['prefix'];
23
24
        switch($data['target']) {
25
            case 'thread'   : $log->thread_id = $data['target_id']; break;
26
            case 'article'  : $log->article_id = $data['target_id']; break;
27
        }
28
29
        switch ($data['actor']) {
30
            case 'admin'    : $log->admin_id = $data['actor_id'];   break;
31
            case 'doctor'   : $log->doctor_id = $data['actor_id'];  break;
32
            case 'user'     : $log->user_id = $data['actor_id'];  break;
33
        }
34
35
        if($log->save()) {
36
            return true;
37
        }
38
39
        return false;
40
    }
41
42
    public static function unregisterLog($data)
43
    {
44
        $logs = Common::getLogs($data);
45
        $c = count($logs);
46
        $r = 0;
47
        foreach ($logs as $log) {
48
            if($log->delete()) {
49
                $r++;
50
            }
51
        }
52
        if($c == $r) {
53
            return true;
54
        }
55
        return false;
56
    }
57
58
    private static function getLogs($data)
59
    {
60
        $logs = null;
61
        if($data['target'] == 'thread') {
62
            $logs = Log::where('thread_id', $data['target_id'])->get();
63
        } elseif($data['target'] == 'article') {
64
            $logs = Log::where('article_id', $data['target_id'])->get();
65
        }
66
        return $logs;
67
    }
68
69
    /**
70
     * Get current logged in user
71
     *
72
     * @return mixed
73
     */
74
    public static function currentUser($guard)
75
    {
76
        return Auth::guard($guard)->user();
77
    }
78
79
}
80