92 lines
3.5 KiB
PHP
92 lines
3.5 KiB
PHP
<?php
|
|
// Consolidated sectores API: handles get_sectores, add_sector, update_sector, delete_sector
|
|
// Expects $route from api/index.php and bootstrap loaded
|
|
|
|
$archivo = __DIR__ . '/../data/sectores.json';
|
|
|
|
switch ($route) {
|
|
case 'get_sectores': {
|
|
header('Content-Type: application/json');
|
|
echo file_exists($archivo) ? file_get_contents($archivo) : json_encode([]);
|
|
break;
|
|
}
|
|
|
|
case 'add_sector': {
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
echo json_encode(['success' => false, 'msg' => 'Método no permitido']);
|
|
break;
|
|
}
|
|
$entrada = json_decode(file_get_contents('php://input'), true);
|
|
$nuevo = trim($entrada['sector'] ?? '');
|
|
if ($nuevo === '') {
|
|
echo json_encode(['success' => false, 'msg' => 'Sector vacío']);
|
|
break;
|
|
}
|
|
$sectores = file_exists($archivo) ? json_decode(file_get_contents($archivo), true) : [];
|
|
if (in_array($nuevo, $sectores)) {
|
|
echo json_encode(['success' => false, 'msg' => 'Sector duplicado']);
|
|
break;
|
|
}
|
|
$sectores[] = $nuevo;
|
|
if (file_put_contents($archivo, json_encode($sectores, JSON_PRETTY_PRINT))) {
|
|
echo json_encode(['success' => true]);
|
|
} else {
|
|
echo json_encode(['success' => false, 'msg' => 'No se pudo guardar']);
|
|
}
|
|
break;
|
|
}
|
|
|
|
case 'update_sector': {
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
echo json_encode(['success' => false, 'msg' => 'Método no permitido']);
|
|
break;
|
|
}
|
|
$entrada = json_decode(file_get_contents('php://input'), true);
|
|
$viejo = trim($entrada['old_sector'] ?? '');
|
|
$nuevo = trim($entrada['new_sector'] ?? '');
|
|
if ($viejo === '' || $nuevo === '') {
|
|
echo json_encode(['success' => false, 'msg' => 'Datos inválidos']);
|
|
break;
|
|
}
|
|
$sectores = file_exists($archivo) ? json_decode(file_get_contents($archivo), true) : [];
|
|
$actualizado = false;
|
|
foreach ($sectores as &$sector) {
|
|
if ($sector === $viejo) { $sector = $nuevo; $actualizado = true; break; }
|
|
}
|
|
if (!$actualizado) {
|
|
echo json_encode(['success' => false, 'msg' => 'Sector no encontrado']);
|
|
break;
|
|
}
|
|
if (file_put_contents($archivo, json_encode($sectores, JSON_PRETTY_PRINT))) {
|
|
echo json_encode(['success' => true]);
|
|
} else {
|
|
echo json_encode(['success' => false, 'msg' => 'No se pudo guardar']);
|
|
}
|
|
break;
|
|
}
|
|
|
|
case 'delete_sector': {
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
echo json_encode(['success' => false, 'msg' => 'Método no permitido']);
|
|
break;
|
|
}
|
|
$entrada = json_decode(file_get_contents('php://input'), true);
|
|
$nombre = trim($entrada['sector'] ?? '');
|
|
if ($nombre === '') {
|
|
echo json_encode(['success' => false, 'msg' => 'Sector inválido']);
|
|
break;
|
|
}
|
|
$sectores = file_exists($archivo) ? json_decode(file_get_contents($archivo), true) : [];
|
|
$nuevaLista = array_values(array_filter($sectores, fn($s) => $s !== $nombre));
|
|
if (file_put_contents($archivo, json_encode($nuevaLista, JSON_PRETTY_PRINT))) {
|
|
echo json_encode(['success' => true]);
|
|
} else {
|
|
echo json_encode(['success' => false, 'msg' => 'No se pudo eliminar']);
|
|
}
|
|
break;
|
|
}
|
|
|
|
default:
|
|
json_error('Ruta no soportada en api_sectores', 404);
|
|
}
|