Completed
Push — settings ( bea8d4...96499a )
by Tony
05:40
created

Log::getDetailsAttribute()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 6
rs 9.4285
cc 2
eloc 3
nc 2
nop 1
1
<?php
2
/**
3
 * app/Models/Alerting/Log.php
4
 *
5
 * Model for access to alert log table data
6
 *
7
 * This program is free software: you can redistribute it and/or modify
8
 * it under the terms of the GNU General Public License as published by
9
 * the Free Software Foundation, either version 3 of the License, or
10
 * (at your option) any later version.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
15
 * GNU General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU General Public License
18
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 *
20
 * @package    LibreNMS
21
 * @link       http://librenms.org
22
 * @copyright  2016 Neil Lathwood
23
 * @author     Neil Lathwood <[email protected]>
24
 */
25
26
namespace App\Models\Alerting;
27
28
use Illuminate\Database\Eloquent\Model;
29
use Illuminate\Database\Eloquent\Builder;
30
31
/**
32
 * @property integer $id
33
 * @property integer $device_id
34
 * @property integer $rule_id
35
 * @property integer $state
36
 * @property string $details
37
 * @property string $time_logged
38
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Alerting\Alert active()
39
 */
40
class Log extends Model
41
{
42
    /**
43
     * Indicates if the model should be timestamped.
44
     *
45
     * @var bool
46
     */
47
    public $timestamps = false;
48
    /**
49
     * The table associated with the model.
50
     *
51
     * @var string
52
     */
53
    protected $table = 'alert_log';
54
    /**
55
     * The primary key column name.
56
     *
57
     * @var string
58
     */
59
    protected $primaryKey = 'id';
60
61
    // ---- Define Reletionships ----
62
63
    /**
64
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
65
     */
66
    public function device()
67
    {
68
        return $this->belongsTo('App\Models\Device', 'device_id');
69
    }
70
71
    /**
72
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
73
     */
74
    public function rule()
75
    {
76
        return $this->belongsTo('App\Models\Alerting\Rule', 'rule_id');
77
    }
78
79
    /**
80
     * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
81
     */
82
    public function user()
83
    {
84
        return $this->belongsToMany('App\Models\User', 'devices_perms', 'device_id', 'user_id');
85
    }
86
87
    // ---- Accessors/Mutators ----
88
89
    public function getDetailsAttribute($details)
90
    {
91
        if ($details) {
92
            return json_decode(gzuncompress($details), true);
93
        }
94
    }
95
96
    public function getTimeLoggedAttribute($date)
97
    {
98
        if ($date) {
99
            return strtotime($date) * 1000;
100
        }
101
    }
102
}
103