cotizador/api/brasil.php

74 lines
2.5 KiB
PHP

<?php
require_once '../config/config.php';
session_start();
header('Content-Type: application/json');
// Verificar sesión activa
if (!isset($_SESSION['autenticado']) || !$_SESSION['autenticado']) {
http_response_code(401);
echo json_encode(['error' => 'No autenticado']);
exit;
}
// Archivo de datos para Brasil
$dataFile = '../data/productos_brasil.json';
// Verificar que la solicitud sea POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Obtener el contenido JSON de la solicitud
$data = file_get_contents('php://input');
// Decodificar el JSON a un array de PHP
$productos = json_decode($data, true);
// Verificar si la decodificación fue exitosa
if ($productos !== null) {
// Guardar los datos en el archivo productos_brasil.json
if (file_put_contents($dataFile, json_encode($productos, JSON_PRETTY_PRINT))) {
echo json_encode(['mensaje' => 'Productos guardados correctamente']);
} else {
echo json_encode(['error' => 'No se pudo guardar los productos']);
}
} else {
echo json_encode(['error' => 'Datos no válidos']);
}
} elseif ($_SERVER['REQUEST_METHOD'] === 'GET') {
// Leer y devolver los productos
if (file_exists($dataFile)) {
$productos = file_get_contents($dataFile);
echo $productos;
} else {
echo json_encode([]);
}
} elseif ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
// Obtener el contenido JSON de la solicitud DELETE
$data = file_get_contents('php://input');
$deleteData = json_decode($data, true);
if (isset($deleteData['id'])) {
// Leer el archivo productos_brasil.json
$productos = json_decode(file_get_contents($dataFile), true);
// Filtrar el producto a eliminar según su ID
$productos = array_filter($productos, function($producto) use ($deleteData) {
return $producto['id'] != $deleteData['id'];
});
// Reindexar el array
$productos = array_values($productos);
// Guardar los datos actualizados
if (file_put_contents($dataFile, json_encode($productos, JSON_PRETTY_PRINT))) {
echo json_encode(['mensaje' => 'Producto eliminado correctamente']);
} else {
echo json_encode(['error' => 'No se pudo eliminar el producto']);
}
} else {
echo json_encode(['error' => 'No se proporcionó un ID para eliminar']);
}
} else {
echo json_encode(['error' => 'Método de solicitud no válido']);
}
?>