68 lines
1.8 KiB
PHP
68 lines
1.8 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers;
|
||
|
||
use App\Enums\DeviceType;
|
||
use App\Helpers\Paginator;
|
||
use App\Http\Requestes\DeviceRequest;
|
||
use App\Http\Resources\DeviceResource;
|
||
use App\Models\Device;
|
||
use Illuminate\Http\Request;
|
||
|
||
class DeviceController extends Controller
|
||
{
|
||
public function index(Request $request)
|
||
{
|
||
$query = Device::with('base')->filter($request->input());
|
||
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
||
|
||
return $this->json(DeviceResource::collection($list));
|
||
}
|
||
|
||
public function store(DeviceRequest $request)
|
||
{
|
||
$input = $request->input();
|
||
//如果不是监控设备,移除extends
|
||
if ($input['type'] != DeviceType::Monitor->value) {
|
||
unset($input['extends']);
|
||
}
|
||
Device::create(array_merge($input, [
|
||
'created_by' => auth('api')->user()?->id ?? 0,
|
||
'updated_by' => auth('api')->user()?->id ?? 0,
|
||
]));
|
||
|
||
return $this->success('添加成功');
|
||
}
|
||
|
||
public function show(Device $device)
|
||
{
|
||
return $this->json(DeviceResource::make($device));
|
||
}
|
||
|
||
public function update(Device $device, DeviceRequest $request)
|
||
{
|
||
$input = $request->input();
|
||
//如果不是监控设备,移除extends
|
||
if ($input['type'] != DeviceType::Monitor->value) {
|
||
$input['extends'] = null;
|
||
}
|
||
$device->update(array_merge($input, [
|
||
'updated_by' => auth('api')->user()?->id ?? 0,
|
||
]));
|
||
|
||
return $this->success('修改成功');
|
||
}
|
||
|
||
public function destroy(Device $device)
|
||
{
|
||
$device->delete();
|
||
|
||
return $this->success('删除成功');
|
||
}
|
||
|
||
public function types()
|
||
{
|
||
return $this->json(DeviceType::types());
|
||
}
|
||
}
|