lcly-data-admin/app/Http/Controllers/DeviceController.php

68 lines
1.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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());
}
}