ADD: Método para cambiar el estado de un dispositivo y ruta correspondiente
This commit is contained in:
parent
27cbc965b5
commit
12986d51cc
@ -10,6 +10,8 @@
|
||||
use App\Models\Device;
|
||||
use App\Models\DeviceModule;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class DeviceController extends Controller
|
||||
{
|
||||
@ -175,4 +177,54 @@ public function destroy($id)
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cambiar solo el status de un dispositivo
|
||||
*/
|
||||
public function toggleStatus(int $id)
|
||||
{
|
||||
try {
|
||||
$device = Device::findOrFail($id);
|
||||
|
||||
DB::beginTransaction();
|
||||
|
||||
$newStatus = !$device->status;
|
||||
$device->update([
|
||||
'status' => $newStatus,
|
||||
]);
|
||||
|
||||
DB::commit();
|
||||
|
||||
$device->refresh();
|
||||
|
||||
return ApiResponse::OK->response([
|
||||
'message' => $device->status
|
||||
? 'Dispositivo activado exitosamente'
|
||||
: 'Dispositivo desactivado exitosamente',
|
||||
'device' => [
|
||||
'id' => $device->id,
|
||||
'brand' => $device->brand,
|
||||
'serie' => $device->serie,
|
||||
'mac_address' => $device->mac_address,
|
||||
'status' => $device->status ? 'Activo' : 'Inactivo',
|
||||
'updated_at' => $device->updated_at->format('Y-m-d H:i:s'),
|
||||
],
|
||||
]);
|
||||
} catch (ModelNotFoundException $e) {
|
||||
return ApiResponse::NOT_FOUND->response([
|
||||
'message' => 'Dispositivo no encontrado',
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
Log::error('Error al cambiar status del módulo: ' . $e->getMessage(), [
|
||||
'module_id' => $id,
|
||||
'trace' => $e->getTraceAsString()
|
||||
]);
|
||||
|
||||
return ApiResponse::INTERNAL_ERROR->response([
|
||||
'message' => 'Error al cambiar status del módulo',
|
||||
'error' => $e->getMessage(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -55,6 +55,7 @@
|
||||
Route::resource('municipality', MunicipalityController::class);
|
||||
|
||||
//Rutas de dispositivos
|
||||
Route::patch('device/{id}/toggle-status', [DeviceController::class, 'toggleStatus']);
|
||||
Route::resource('devices', DeviceController::class);
|
||||
|
||||
//Ruta de paquetes
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user