fix: actualizar dispositivo
This commit is contained in:
parent
22f7e0226e
commit
974efc1c9c
@ -42,6 +42,7 @@ public function index()
|
||||
'name',
|
||||
'paternal',
|
||||
'maternal',
|
||||
'username',
|
||||
'email',
|
||||
'module_id',
|
||||
'deleted_at'
|
||||
|
||||
@ -122,6 +122,23 @@ public function update(DeviceUpdateRequest $request, $id)
|
||||
|
||||
$device = Device::findOrFail($id);
|
||||
|
||||
// Validar unicidad solo si los valores cambiaron
|
||||
if ($request->filled('serie') && $request->serie !== $device->serie) {
|
||||
if (Device::where('serie', $request->serie)->exists()) {
|
||||
return ApiResponse::INTERNAL_ERROR->response([
|
||||
'message' => 'El número de serie ya está en uso.',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($request->filled('mac_address') && $request->mac_address !== $device->mac_address) {
|
||||
if (Device::where('mac_address', $request->mac_address)->exists()) {
|
||||
return ApiResponse::INTERNAL_ERROR->response([
|
||||
'message' => 'La dirección MAC ya está registrada.',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
$device->update($request->only(['brand', 'serie', 'mac_address', 'status']));
|
||||
|
||||
DeviceModule::where('device_id', $device->id)->delete();
|
||||
|
||||
@ -13,12 +13,10 @@ public function authorize(): bool
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$deviceId = $this->route('device');
|
||||
|
||||
return [
|
||||
'brand' => ['nullable', 'string', 'max:255'],
|
||||
'serie' => ['nullable', 'string', 'unique:devices,serie,' . $deviceId, 'max:255'],
|
||||
'mac_address' => ['nullable', 'string', 'unique:devices,mac_address,' . $deviceId, 'regex:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/'],
|
||||
'serie' => ['nullable', 'string', 'max:255'],
|
||||
'mac_address' => ['nullable', 'string', 'regex:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/'],
|
||||
'module_id' => ['nullable', 'exists:modules,id'],
|
||||
'user_id' => ['nullable', 'array'],
|
||||
'user_id.*' => ['exists:users,id'],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user