UNPKG

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
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