cms-web-apis
Version:
Biblioteca de APIs para CMS Web - Conjunto completo de funciones para interactuar con APIs de gestión de contenido
55 lines • 2.42 kB
JavaScript
import dotenv from 'dotenv';
import { fetchApi } from './api.js';
dotenv.config();
const API_BASE_URL = process.env['API_BASE_URL'];
const getProductosPorBusqueda = async (patronBusqueda) => {
try {
const patron = patronBusqueda.trim() === "" ? "*" : patronBusqueda;
const url = `${API_BASE_URL}/Productos/GetProductosBasePorBusquedaAmbigua/PatronBusqueda/${encodeURIComponent(patron)}`;
console.log('=== getProductosPorBusqueda ===');
console.log('URL:', url);
console.log('Patrón de búsqueda:', patron);
const response = await fetchApi(url);
console.log('Productos encontrados:', Array.isArray(response) ? response.length : 'No es array');
return response;
}
catch (error) {
console.error('Error obteniendo productos:', error);
throw error;
}
};
// Función para traer TODOS los productos combinando múltiples búsquedas
const getAllProductos = async () => {
try {
console.log('=== BUSCANDO TODOS LOS PRODUCTOS ===');
// Hacer múltiples búsquedas con diferentes patrones para obtener más productos
const patrones = [
"*", // Comodín general
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
];
const todasLasPromesas = patrones.map(patron => getProductosPorBusqueda(patron));
const resultados = await Promise.all(todasLasPromesas);
// Combinar todos los resultados y eliminar duplicados
const productosUnicos = new Map();
resultados.forEach(productos => {
if (Array.isArray(productos)) {
productos.forEach(producto => {
if (producto.idProductoBase) {
productosUnicos.set(producto.idProductoBase, producto);
}
});
}
});
const productosFinales = Array.from(productosUnicos.values());
console.log(`Total productos únicos encontrados: ${productosFinales.length}`);
console.log('=============================');
return productosFinales;
}
catch (error) {
console.error('Error obteniendo todos los productos:', error);
throw error;
}
};
export { getProductosPorBusqueda, getAllProductos };
//# sourceMappingURL=apiPatronBusquedaProductos.js.map