1<?php 2/** 3 * Syslog.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 <https://www.gnu.org/licenses/>. 19 * 20 * @link https://www.librenms.org 21 * @copyright 2018 Tony Murray 22 * @author Tony Murray <murraytony@gmail.com> 23 */ 24 25namespace App\Http\Controllers\Select; 26 27class SyslogController extends SelectController 28{ 29 /** 30 * Defines validation rules (will override base validation rules for select2 responses too) 31 * 32 * @return array 33 */ 34 protected function rules() 35 { 36 return [ 37 'field' => 'required|in:program,priority', 38 'device' => 'nullable|int', 39 ]; 40 } 41 42 /** 43 * Defines search fields will be searched in order 44 * 45 * @param \Illuminate\Http\Request $request 46 * @return array 47 */ 48 protected function searchFields($request) 49 { 50 return [$request->get('field')]; 51 } 52 53 /** 54 * Defines the base query for this resource 55 * 56 * @param \Illuminate\Http\Request $request 57 * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder 58 */ 59 protected function baseQuery($request) 60 { 61 /** @var \Illuminate\Database\Eloquent\Builder $query */ 62 $query = \App\Models\Syslog::hasAccess($request->user()) 63 ->select($request->get('field'))->distinct(); 64 65 if ($device_id = $request->get('device')) { 66 $query->where('device_id', $device_id); 67 } 68 69 return $query; 70 } 71} 72