- Token UUID generado en localStorage del navegador, persistido como cookie - turnero_dispositivos.token: nueva columna para identificar equipos - recepcion.php y lugar.php: chequean token (cookie) primero, IP como fallback - configuracion.php: banner con token del equipo actual + botón "Registrar este equipo" - save_dispositivo.php: acepta campo token al crear/editar dispositivo - Migración: 20260709_dispositivos_token.sql Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
1.7 KiB
PHP
46 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* modules/turnero/api/save_dispositivo.php
|
|
* POST {ip, nombre, lugar_id, activo} → crear
|
|
* POST {id, ip, nombre, lugar_id, activo} → actualizar
|
|
* POST {id, _delete: true} → eliminar
|
|
*/
|
|
require_once __DIR__ . '/_helpers.php';
|
|
requireTurnero();
|
|
requireMethod('POST');
|
|
|
|
$input = inputJson();
|
|
$id = (int)($input['id'] ?? 0);
|
|
$delete = !empty($input['_delete']);
|
|
|
|
if ($delete) {
|
|
if (!$id) jsonError('ID requerido');
|
|
db()->prepare('DELETE FROM turnero_dispositivos WHERE id = ?')->execute([$id]);
|
|
jsonOk([], 'Dispositivo eliminado');
|
|
}
|
|
|
|
$ip = trim($input['ip'] ?? '');
|
|
$nombre = trim($input['nombre'] ?? '');
|
|
$lugarId = (int)($input['lugar_id'] ?? 0);
|
|
$activo = (int)($input['activo'] ?? 1);
|
|
$token = trim($input['token'] ?? '') ?: null;
|
|
|
|
if ($nombre === '') jsonError('El nombre es requerido');
|
|
if ($lugarId <= 0) jsonError('Debes asignar un lugar');
|
|
if ($ip === '' && $token === null) jsonError('Se requiere IP o token de dispositivo');
|
|
|
|
if ($id) {
|
|
$stmt = db()->prepare(
|
|
'UPDATE turnero_dispositivos SET ip=?, nombre=?, lugar_id=?, activo=?, token=? WHERE id=?'
|
|
);
|
|
$stmt->execute([$ip, $nombre, $lugarId, $activo, $token, $id]);
|
|
jsonOk(['id' => $id], 'Dispositivo actualizado');
|
|
} else {
|
|
$stmt = db()->prepare(
|
|
'INSERT INTO turnero_dispositivos (ip, nombre, lugar_id, activo, token) VALUES (?, ?, ?, ?, ?)
|
|
ON DUPLICATE KEY UPDATE nombre=VALUES(nombre), lugar_id=VALUES(lugar_id), activo=VALUES(activo), token=VALUES(token)'
|
|
);
|
|
$stmt->execute([$ip, $nombre, $lugarId, $activo, $token]);
|
|
jsonOk(['id' => (int)db()->lastInsertId()], 'Dispositivo creado');
|
|
}
|