Test Setup Failed
Push — vue-test ( ff6340...189e4a )
by Tony
03:38
created

AvailabilityMap   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 17
rs 10
ccs 0
cts 8
cp 0
wmc 2
lcom 0
cbo 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A get() 0 14 2
1
<?php
2
/**
3
 * AvailabilityMap.php
4
 *
5
 * -Description-
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  2017 Tony Murray
23
 * @author     Tony Murray <[email protected]>
24
 */
25
26
namespace App\Data\Widgets;
27
28
use App\Data\Interfaces\WidgetDataInterface;
29
use App\Models\Device;
30
use Illuminate\Http\Request;
31
use Settings;
32
33
class AvailabilityMap implements WidgetDataInterface
34
{
35
    public function get(Request $request)
36
    {
37
        $user = $request->user();
38
        $uptime_warning = Settings::get('uptime_warning', 84600);
39
40
        if ($user->hasGlobalRead()) {
41
            $deviceQuery = Device::isNotIgnored();
42
        } else {
43
            $deviceQuery = $user->devices()->isNotIgnored();
44
        }
45
        $devices = $deviceQuery->get(['device_id', 'hostname', 'status', 'uptime'])->keyBy('device_id');
46
47
        return compact(['devices', 'uptime_warning']);
48
    }
49
}
50