Completed
Pull Request — master (#133)
by
unknown
05:13
created

SensorData   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 84
Duplicated Lines 15.48 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 13
loc 84
ccs 0
cts 10
cp 0
rs 10
c 0
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getUpdatedAtHumanAttribute() 6 6 2
A getCreatedAtHumanAttribute() 6 6 2
A sensor() 0 3 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
3
namespace App;
4
5
use Illuminate\Database\Eloquent\Model;
6
use Spatie\Activitylog\Traits\LogsActivity;
7
use Illuminate\Support\Facades\Auth;
8
9
class SensorData extends Model 
10
{
11
    //use LogsActivity;
12
13
    protected $table = 'sensor_data';
14
15
    /**
16
     * Update the updated_at and created_at timestamps?
17
     *
18
     * @var array
19
     */
20
    public $timestamps = true;
21
22
    /**
23
     * The attributes that are mass assignable.
24
     *
25
     * @var array
26
     */
27
    protected $fillable = array('sensor_id', 'value');
28
29
    /**
30
     * The attributes that are visible.
31
     *
32
     * @var array
33
     */
34
    protected $visible = array('id', 'sensor_id', 'value', 'created_at', 'updated_at');
35
    
36
    /**
37
     * The attributes to log in the Activity Log
38
     *
39
     * @var array
40
     */
41
    protected static $logAttributes = array('id', 'sensor_id', 'value', 'created_at', 'updated_at');
42
    
43
    /**
44
     * Only log those that have actually changed after the update.
45
     *
46
     * @var array
47
     */
48
    protected static $logOnlyDirty = true;
49
50
    /**
51
     * Get the device associated with the sensor.
52
     */
53
    public function sensor()
54
    {
55
        return $this->belongsTo('App\Sensor');
56
    }
57
    
58
    /**
59
     * Accessor: Get the sensor data's last update time in seconds/minutes/hours since update or converted to user
60
     * friendly readable format.
61
     * If the time is less then a day old then display time since it last updated
62
     * If the time is greater then a day old then display the time in the format of Month day, year 12hour:mins am/pm
63
     * and using the user's preferred timezone
64
     *
65
     *
66
     * @return string
67
     */
68 View Code Duplication
    public function getUpdatedAtHumanAttribute()
69
    {
70
        if ($this->updated_at->diffInDays() > 0) {
71
                    return $this->updated_at->setTimezone(Auth::user()->timezone)->format('M d, Y h:i a');
72
        } else {
73
                    return $this->updated_at->diffForHumans();
74
        }
75
    }
76
    
77
    /**
78
     * Accessor: Get the sensor data's creation time in seconds/minutes/hours since update or converted to user
79
     * friendly readable format.
80
     * If the time is less then a day old then display time since creation
81
     * If the time is greater then a day old then display the time in the format of Month day, year 12hour:mins am/pm
82
     * and using the user's preferred timezone
83
     *
84
     *
85
     * @return string
86
     */
87 View Code Duplication
    public function getCreatedAtHumanAttribute()
88
    {
89
        if ($this->created_at->diffInDays() > 0) {
90
                    return $this->created_at->setTimezone(Auth::user()->timezone)->format('M d, Y h:i a');
91
        } else {
92
                    return $this->created_at->diffForHumans();
93
        }
94
    }
95
}