Completed
Pull Request — master (#82)
by Brandon
02:15
created
app/DataTables/SensorDataDataTable.php 2 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -64,7 +64,7 @@
 block discarded – undo
64 64
     /**
65 65
      * Get columns.
66 66
      *
67
-     * @return array
67
+     * @return string[]
68 68
      */
69 69
     protected function getColumns()
70 70
     {
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -15,12 +15,12 @@
 block discarded – undo
15 15
     public function dataTable($query)
16 16
     {
17 17
         return datatables($query)
18
-            ->editColumn('sensor_id', function ($sensordata) {
19
-                return '<a href="/sensor/' . $sensordata->sensor_id . '">'. ($sensordata->sensor->name ?? '') . '</a>';
18
+            ->editColumn('sensor_id', function($sensordata) {
19
+                return '<a href="/sensor/'.$sensordata->sensor_id.'">'.($sensordata->sensor->name ?? '').'</a>';
20 20
             })
21 21
             ->addColumn('action', 'sensordata.action')
22
-            ->blacklist([ 'action'])
23
-            ->rawColumns(['sensor_id', 'action']);
22
+            ->blacklist([ 'action' ])
23
+            ->rawColumns([ 'sensor_id', 'action' ]);
24 24
     }
25 25
 
26 26
     /**
Please login to merge, or discard this patch.
app/Http/Controllers/ApiController.php 3 patches
Doc Comments   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
     /**
18 18
      * Creates a json response for all the devices.
19 19
      *
20
-     * @return Response
20
+     * @return \Illuminate\Http\JsonResponse
21 21
      */    
22 22
     public function index()
23 23
     {
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
      * Creates a json response for a specifc device.
29 29
      *
30 30
      * @param  Device  $device
31
-     * @return Response
31
+     * @return \Illuminate\Http\JsonResponse
32 32
      */    
33 33
     public function show(Device $device)
34 34
     {
@@ -39,7 +39,7 @@  discard block
 block discarded – undo
39 39
      * Updates the status of a device.
40 40
      *
41 41
      * @param  Request  $request
42
-     * @return Response
42
+     * @return \Illuminate\Http\JsonResponse
43 43
      */
44 44
     public function update(Request $request)
45 45
     {
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
      * Updates the sensors of a device.
108 108
      *
109 109
      * @param  Request  $request
110
-     * @return Response
110
+     * @return \Illuminate\Http\JsonResponse
111 111
      */
112 112
     public function sensor(Request $request)
113 113
     {
@@ -170,7 +170,7 @@  discard block
 block discarded – undo
170 170
      * Registers a new device.
171 171
      *
172 172
      * @param  Request  $request
173
-     * @return Response
173
+     * @return \Illuminate\Http\JsonResponse
174 174
      */
175 175
     public function register(Request $request)
176 176
     {
@@ -228,7 +228,7 @@  discard block
 block discarded – undo
228 228
      * Updates the image for a device.
229 229
      *
230 230
      * @param  Request  $request
231
-     * @return Response
231
+     * @return \Illuminate\Http\JsonResponse
232 232
      */
233 233
     public function image(Request $request) {
234 234
         // Validate the request.
Please login to merge, or discard this patch.
Unused Use Statements   -2 removed lines patch added patch discarded remove patch
@@ -9,8 +9,6 @@
 block discarded – undo
9 9
 use App\User;
10 10
 use App\Sensor;
11 11
 use App\SensorData;
12
-use Illuminate\Support\Facades\Cache;
13
-use Illuminate\Support\Facades\Storage;
14 12
 
15 13
 class ApiController extends Controller
16 14
 {
Please login to merge, or discard this patch.
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -21,7 +21,7 @@  discard block
 block discarded – undo
21 21
      */    
22 22
     public function index()
23 23
     {
24
-        return response()->json(['data' => 'SmartSettia API - Bad request type.'], 400);
24
+        return response()->json([ 'data' => 'SmartSettia API - Bad request type.' ], 400);
25 25
     }
26 26
 
27 27
     /**
@@ -90,7 +90,7 @@  discard block
 block discarded – undo
90 90
         //event(new Registered(true));
91 91
         
92 92
         // Return the new device info including the token.
93
-        return response()->json(['data' => $device->toArray()], 201);
93
+        return response()->json([ 'data' => $device->toArray() ], 201);
94 94
     }
95 95
     
96 96
     /**
@@ -127,13 +127,13 @@  discard block
 block discarded – undo
127 127
         foreach ($sensor_datas as $sensor_data) {
128 128
             $sensor = Sensor::firstOrCreate([
129 129
                 "device_id" => $device->id,
130
-                "name" => $sensor_data['name'], 
131
-                "type" => $sensor_data['type']
130
+                "name" => $sensor_data[ 'name' ], 
131
+                "type" => $sensor_data[ 'type' ]
132 132
             ]);
133 133
             
134 134
             SensorData::create([
135 135
                 "sensor_id" => $sensor->id,
136
-                "value" => $sensor_data['value']
136
+                "value" => $sensor_data[ 'value' ]
137 137
             ]);
138 138
         }
139 139
         
@@ -143,7 +143,7 @@  discard block
 block discarded – undo
143 143
         //event(new Registered(true));
144 144
         
145 145
         // Return the new device info including the token.
146
-        return response()->json(['data' => $device->toArray()], 201);
146
+        return response()->json([ 'data' => $device->toArray() ], 201);
147 147
     }
148 148
     
149 149
     /**
@@ -162,7 +162,7 @@  discard block
 block discarded – undo
162 162
         
163 163
         // If challenge string doesnt match then send 401 unauthorized.
164 164
         if ($request->input('challenge') != env('API_CHALLENGE', 'temppass')) {
165
-            return response()->json(['data' => 'Bad challenge.'], 401);
165
+            return response()->json([ 'data' => 'Bad challenge.' ], 401);
166 166
         }
167 167
         
168 168
         // If the uuid already exists then just send them the record.
@@ -172,7 +172,7 @@  discard block
 block discarded – undo
172 172
                 'uuid' => $device->uuid,
173 173
                 'id' => $device->id,
174 174
                 'token' => $device->token,
175
-            ]], 200);
175
+            ] ], 200);
176 176
         }
177 177
         
178 178
         // Create the new device.
@@ -196,7 +196,7 @@  discard block
 block discarded – undo
196 196
             'uuid' => $device->uuid,
197 197
             'id' => $device->id,
198 198
             'token' => $device->token,
199
-        ]], 201);
199
+        ] ], 201);
200 200
     }
201 201
     
202 202
     /**
@@ -217,21 +217,21 @@  discard block
 block discarded – undo
217 217
         $device = Device::getDeviceByUUID($request->input('uuid'));
218 218
         
219 219
         // Save the image to disk.
220
-        $path = $request->file('image')->storeAs('deviceimage', $device['id'], 'private');
220
+        $path = $request->file('image')->storeAs('deviceimage', $device[ 'id' ], 'private');
221 221
         
222 222
         // Update the url for the image.
223 223
         $deviceimage = Deviceimage::updateOrCreate(
224
-            ['device_id' => $device['id']],
225
-            ['url' => $path]
224
+            [ 'device_id' => $device[ 'id' ] ],
225
+            [ 'url' => $path ]
226 226
         );
227 227
         
228 228
         // Force the updated_at timestamp to update as the url may not change.
229 229
         $deviceimage->touch();
230 230
         
231 231
         return response()->json([ 'data' => [ 
232
-            'id' => $deviceimage['id'],
232
+            'id' => $deviceimage[ 'id' ],
233 233
             'url' => $path,
234
-        ]], 201);
234
+        ] ], 201);
235 235
     }
236 236
 }
237 237
 
Please login to merge, or discard this patch.
app/DataTables/DevicesDataTable.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -64,7 +64,7 @@
 block discarded – undo
64 64
     /**
65 65
      * Get columns.
66 66
      *
67
-     * @return array
67
+     * @return string[]
68 68
      */
69 69
     protected function getColumns()
70 70
     {
Please login to merge, or discard this patch.
Unused Use Statements   -1 removed lines patch added patch discarded remove patch
@@ -3,7 +3,6 @@
 block discarded – undo
3 3
 namespace App\DataTables;
4 4
 
5 5
 use App\Device;
6
-use App\Site;
7 6
 use Yajra\DataTables\Services\DataTable;
8 7
 
9 8
 class DevicesDataTable extends DataTable
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -16,17 +16,17 @@
 block discarded – undo
16 16
     public function dataTable($query)
17 17
     {
18 18
         return datatables($query)
19
-            ->editColumn('name', function ($device) {
20
-                return '<a href="' . route('device.show', $device->id) . '">' . $device->name . '</a>';
19
+            ->editColumn('name', function($device) {
20
+                return '<a href="'.route('device.show', $device->id).'">'.$device->name.'</a>';
21 21
             })
22
-            ->addColumn('location', function ($device) {
22
+            ->addColumn('location', function($device) {
23 23
                 return ($device->location->name ?? 'null');
24 24
             })
25
-            ->addColumn('site', function ($device) {
25
+            ->addColumn('site', function($device) {
26 26
                 return ($device->location->site->name ?? 'null');
27 27
             })
28
-            ->addColumn('rates', function ($device) {
29
-                return $device->update_rate . '/' . $device->image_rate .'/' . $device->sensor_rate;
28
+            ->addColumn('rates', function($device) {
29
+                return $device->update_rate.'/'.$device->image_rate.'/'.$device->sensor_rate;
30 30
             })
31 31
             ->blacklist([ 'location', 'site', 'rates' ])
32 32
             ->rawColumns([ 'name' ]);
Please login to merge, or discard this patch.
app/Http/Controllers/SensorController.php 3 patches
Unused Use Statements   -1 removed lines patch added patch discarded remove patch
@@ -5,7 +5,6 @@
 block discarded – undo
5 5
 use App\Sensor;
6 6
 use App\DataTables\SensorDataTable;
7 7
 use Illuminate\Http\Request;
8
-use Validator;
9 8
 
10 9
 class SensorController extends Controller 
11 10
 {
Please login to merge, or discard this patch.
Indentation   +41 added lines, -41 removed lines patch added patch discarded remove patch
@@ -10,42 +10,42 @@  discard block
 block discarded – undo
10 10
 class SensorController extends Controller 
11 11
 {
12 12
     /**
13
-    * Create a new controller instance.
14
-    *
15
-    * @return void
16
-    */
13
+     * Create a new controller instance.
14
+     *
15
+     * @return void
16
+     */
17 17
     public function __construct()
18 18
     {
19 19
         $this->middleware('auth');
20 20
     }
21 21
 
22 22
     /**
23
-    * Display a listing of the resource.
24
-    *
25
-    * @param  SensorDataTable   $dataTable
26
-    * @return Response
27
-    */
23
+     * Display a listing of the resource.
24
+     *
25
+     * @param  SensorDataTable   $dataTable
26
+     * @return Response
27
+     */
28 28
     public function index(SensorDataTable $dataTable)
29 29
     {
30 30
         return $dataTable->render('sensor.index');
31 31
     }
32 32
 
33 33
     /**
34
-    * Show the form for creating a new resource.
35
-    *
36
-    * @return Response
37
-    */
34
+     * Show the form for creating a new resource.
35
+     *
36
+     * @return Response
37
+     */
38 38
     public function create()
39 39
     {
40 40
         return view('sensor.create');
41 41
     }
42 42
 
43 43
     /**
44
-    * Store a newly created resource in storage.
45
-    *
46
-    * @param Request $request
47
-    * @return Response
48
-    */
44
+     * Store a newly created resource in storage.
45
+     *
46
+     * @param Request $request
47
+     * @return Response
48
+     */
49 49
     public function store(Request $request)
50 50
     {
51 51
         request()->validate([
@@ -61,12 +61,12 @@  discard block
 block discarded – undo
61 61
     }
62 62
 
63 63
     /**
64
-    * Display the specified resource.
65
-    *
66
-    * @param  Request  $request
67
-    * @param  int  $id
68
-    * @return Response
69
-    */
64
+     * Display the specified resource.
65
+     *
66
+     * @param  Request  $request
67
+     * @param  int  $id
68
+     * @return Response
69
+     */
70 70
     public function show(Request $request, $id)
71 71
     {
72 72
         $sensor = Sensor::findOrFail($id);
@@ -75,12 +75,12 @@  discard block
 block discarded – undo
75 75
     }
76 76
 
77 77
     /**
78
-    * Show the form for editing the specified resource.
79
-    *
80
-    * @param  Request  $request
81
-    * @param  int  $id
82
-    * @return Response
83
-    */
78
+     * Show the form for editing the specified resource.
79
+     *
80
+     * @param  Request  $request
81
+     * @param  int  $id
82
+     * @return Response
83
+     */
84 84
     public function edit(Request $request, $id)
85 85
     {
86 86
         $sensor = Sensor::findOrFail($id);
@@ -89,12 +89,12 @@  discard block
 block discarded – undo
89 89
     }
90 90
 
91 91
     /**
92
-    * Update the specified resource in storage.
93
-    *
94
-    * @param  Request  $request
95
-    * @param  int  $id
96
-    * @return Response
97
-    */
92
+     * Update the specified resource in storage.
93
+     *
94
+     * @param  Request  $request
95
+     * @param  int  $id
96
+     * @return Response
97
+     */
98 98
     public function update(Request $request, $id)
99 99
     {
100 100
         request()->validate([
@@ -108,11 +108,11 @@  discard block
 block discarded – undo
108 108
     }
109 109
 
110 110
     /**
111
-    * Remove the specified resource from storage.
112
-    *
113
-    * @param  int  $id
114
-    * @return Response
115
-    */
111
+     * Remove the specified resource from storage.
112
+     *
113
+     * @param  int  $id
114
+     * @return Response
115
+     */
116 116
     public function destroy($id)
117 117
     {
118 118
         Sensor::findOrFail($id)->delete();
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -117,7 +117,7 @@
 block discarded – undo
117 117
     {
118 118
         Sensor::findOrFail($id)->delete();
119 119
         return redirect()->route('sensor.index')
120
-            ->with('success','Sensor deleted successfully');
120
+            ->with('success', 'Sensor deleted successfully');
121 121
     }
122 122
 
123 123
 }
Please login to merge, or discard this patch.
app/DataTables/ActivityLogDataTable.php 1 patch
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -16,16 +16,16 @@  discard block
 block discarded – undo
16 16
     public function dataTable($query)
17 17
     {
18 18
         return datatables($query)
19
-            ->editColumn('causer_id', function ($activity) {
20
-                return ($activity->causer_id ? '<a href="/' . ($activity->causer_type == "App\User" ? 'user' : 'device') . '/' . $activity->causer_id . '">' . ($activity->causer->name ?? '') . '</a>' : 'App');
19
+            ->editColumn('causer_id', function($activity) {
20
+                return ($activity->causer_id ? '<a href="/'.($activity->causer_type == "App\User" ? 'user' : 'device').'/'.$activity->causer_id.'">'.($activity->causer->name ?? '').'</a>' : 'App');
21 21
             })
22
-            ->editColumn('subject_id', function ($activity) {
23
-                return ($activity->subject_id ? '<a href="/' . ($activity->subject_type == "App\User" ? 'user' : 'device') . '/' . $activity->subject_id . '">' . ($activity->subject->name ?? '') . '</a>' : 'App');
22
+            ->editColumn('subject_id', function($activity) {
23
+                return ($activity->subject_id ? '<a href="/'.($activity->subject_type == "App\User" ? 'user' : 'device').'/'.$activity->subject_id.'">'.($activity->subject->name ?? '').'</a>' : 'App');
24 24
             })
25
-            ->editColumn('properties', function ($activity) {
25
+            ->editColumn('properties', function($activity) {
26 26
                 return $activity->properties;
27 27
             })
28
-            ->rawColumns(['causer_id', 'subject_id', 'properties']);
28
+            ->rawColumns([ 'causer_id', 'subject_id', 'properties' ]);
29 29
     }
30 30
 
31 31
     /**
@@ -98,6 +98,6 @@  discard block
 block discarded – undo
98 98
      */
99 99
     protected function filename()
100 100
     {
101
-        return 'activitylog_' . time();
101
+        return 'activitylog_'.time();
102 102
     }
103 103
 }
Please login to merge, or discard this patch.
app/DataTables/SensorDataTable.php 1 patch
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -15,18 +15,18 @@
 block discarded – undo
15 15
     public function dataTable($query)
16 16
     {
17 17
         return datatables($query)
18
-            ->editColumn('device_id', function ($sensor) {
19
-                return '<a href="/device/' . $sensor->device_id . '">'. ($sensor->device->name ?? '') . '</a>';
18
+            ->editColumn('device_id', function($sensor) {
19
+                return '<a href="/device/'.$sensor->device_id.'">'.($sensor->device->name ?? '').'</a>';
20 20
             })
21
-            ->editColumn('name', function ($sensor) {
22
-                return '<a href="/sensor/' . $sensor->id . '">'. $sensor->name . '</a>';
21
+            ->editColumn('name', function($sensor) {
22
+                return '<a href="/sensor/'.$sensor->id.'">'.$sensor->name.'</a>';
23 23
             })
24
-            ->addColumn('value', function ($sensor) {
24
+            ->addColumn('value', function($sensor) {
25 25
                 return $sensor->latest_data->value;
26 26
             })
27 27
             ->addColumn('action', 'sensor.action')
28
-            ->blacklist([ 'action', 'value'])
29
-            ->rawColumns(['device_id', 'name', 'action']);
28
+            ->blacklist([ 'action', 'value' ])
29
+            ->rawColumns([ 'device_id', 'name', 'action' ]);
30 30
     }
31 31
 
32 32
     /**
Please login to merge, or discard this patch.
app/Device.php 1 patch
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
      *
32 32
      * @var array
33 33
      */
34
-    protected $hidden = ['token'];
34
+    protected $hidden = [ 'token' ];
35 35
     
36 36
     /**
37 37
      * The attributes that are mass assignable.
@@ -50,7 +50,7 @@  discard block
 block discarded – undo
50 50
      *
51 51
      * @var array
52 52
      */
53
-    protected static $ignoreChangedAttributes = ['updated_at'];
53
+    protected static $ignoreChangedAttributes = [ 'updated_at' ];
54 54
     
55 55
     /**
56 56
      * The attributes to log in the Activity Log
@@ -91,7 +91,7 @@  discard block
 block discarded – undo
91 91
      */
92 92
     public function getSiteAttribute()
93 93
     {
94
-        return $this->location->site ?? (object)[];
94
+        return $this->location->site ?? (object) [ ];
95 95
     }
96 96
     
97 97
     /**
@@ -151,7 +151,7 @@  discard block
 block discarded – undo
151 151
         else
152 152
             $time = new Carbon($value, 'UTC');
153 153
         
154
-        $this->attributes['open_time'] = $time;
154
+        $this->attributes[ 'open_time' ] = $time;
155 155
     }
156 156
     
157 157
     /**
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
         else
174 174
             $time = new Carbon($value, 'UTC');
175 175
         
176
-        $this->attributes['close_time'] = $time;
176
+        $this->attributes[ 'close_time' ] = $time;
177 177
     }
178 178
     
179 179
     /**
Please login to merge, or discard this patch.
app/Http/Controllers/SensorDataController.php 2 patches
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -9,41 +9,41 @@  discard block
 block discarded – undo
9 9
 class SensorDataController extends Controller 
10 10
 {
11 11
     /**
12
-    * Create a new controller instance.
13
-    *
14
-    * @return void
15
-    */
12
+     * Create a new controller instance.
13
+     *
14
+     * @return void
15
+     */
16 16
     public function __construct()
17 17
     {
18 18
         $this->middleware('auth');
19 19
     }
20 20
 
21 21
     /**
22
-    * Display a listing of the resource.
23
-    *
24
-    * @param SensorDataDataTable $dataTable
25
-    * @return Response
26
-    */
22
+     * Display a listing of the resource.
23
+     *
24
+     * @param SensorDataDataTable $dataTable
25
+     * @return Response
26
+     */
27 27
     public function index(SensorDataDataTable $dataTable)
28 28
     {
29 29
         return $dataTable->render('sensordata.index');
30 30
     }
31 31
 
32 32
     /**
33
-    * Show the form for creating a new resource.
34
-    *
35
-    * @return Response
36
-    */
33
+     * Show the form for creating a new resource.
34
+     *
35
+     * @return Response
36
+     */
37 37
     public function create()
38 38
     {
39 39
         return view('sensordata.create');
40 40
     }
41 41
 
42 42
     /**
43
-    * Store a newly created resource in storage.
44
-    *
45
-    * @return Response
46
-    */
43
+     * Store a newly created resource in storage.
44
+     *
45
+     * @return Response
46
+     */
47 47
     public function store()
48 48
     {
49 49
         request()->validate([
@@ -58,12 +58,12 @@  discard block
 block discarded – undo
58 58
     }
59 59
 
60 60
     /**
61
-    * Display the specified resource.
62
-    *
63
-    * @param  Request  $request
64
-    * @param  int  $id
65
-    * @return Response
66
-    */
61
+     * Display the specified resource.
62
+     *
63
+     * @param  Request  $request
64
+     * @param  int  $id
65
+     * @return Response
66
+     */
67 67
     public function show(Request $request, $id)
68 68
     {
69 69
         $sensordata = SensorData::findOrFail($id);
@@ -72,11 +72,11 @@  discard block
 block discarded – undo
72 72
     }
73 73
 
74 74
     /**
75
-    * Show the form for editing the specified resource.
76
-    *
77
-    * @param  int  $id
78
-    * @return Response
79
-    */
75
+     * Show the form for editing the specified resource.
76
+     *
77
+     * @param  int  $id
78
+     * @return Response
79
+     */
80 80
     public function edit(Request $request, $id)
81 81
     {
82 82
         $sensordata = SensorData::findOrFail($id);
@@ -85,11 +85,11 @@  discard block
 block discarded – undo
85 85
     }
86 86
 
87 87
     /**
88
-    * Update the specified resource in storage.
89
-    *
90
-    * @param  int  $id
91
-    * @return Response
92
-    */
88
+     * Update the specified resource in storage.
89
+     *
90
+     * @param  int  $id
91
+     * @return Response
92
+     */
93 93
     public function update($id)
94 94
     {
95 95
         request()->validate([
@@ -102,11 +102,11 @@  discard block
 block discarded – undo
102 102
     }
103 103
 
104 104
     /**
105
-    * Remove the specified resource from storage.
106
-    *
107
-    * @param  int  $id
108
-    * @return Response
109
-    */
105
+     * Remove the specified resource from storage.
106
+     *
107
+     * @param  int  $id
108
+     * @return Response
109
+     */
110 110
     public function destroy($id)
111 111
     {
112 112
         SensorData::find($id)->delete();
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -111,7 +111,7 @@
 block discarded – undo
111 111
     {
112 112
         SensorData::find($id)->delete();
113 113
         return redirect()->route('sensordata.index')
114
-            ->with('success','SensorData deleted successfully');
114
+            ->with('success', 'SensorData deleted successfully');
115 115
     }
116 116
 
117 117
 }
Please login to merge, or discard this patch.
app/Sensor.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -68,6 +68,6 @@
 block discarded – undo
68 68
      */
69 69
     public function getLatestDataAttribute()
70 70
     {
71
-        return $this->hasOne('App\SensorData')->latest()->first() ?? (object)[];
71
+        return $this->hasOne('App\SensorData')->latest()->first() ?? (object) [ ];
72 72
     }
73 73
 }
74 74
\ No newline at end of file
Please login to merge, or discard this patch.