1// Importar la función quitarTildes desde el archivo main.js del buscador 2import { quitarTildes } from '/SiteAssets/Buscador/assets/js/main.js'; 3 4// Función asincrónica para realizar la consulta de noticias 5export async function ConsultaNoticias(terminoDeBusquedaN) { 6 // Definir parámetros de la consulta 7 const folder = "Páginas"; // Carpeta en la que se realiza la búsqueda 8 const params = ["ID", "LinkFilename", "Title"]; // Campos a seleccionar en la consulta 9 10 // Normalizar el término de búsqueda eliminando tildes y convirtiéndolo a minúsculas 11 const terminoNormalizado = quitarTildes(terminoDeBusquedaN.toLowerCase()); 12 13 // Construir la URL de la consulta 14 const ulrFetch = `${location.protocol}//${location.host}/NuestraAlcaldia/SaladePrensa/_api/web/lists/getbytitle('${folder}')/items?$select=${params}&$top=5000`; 15 16 try { 17 // Realizar la consulta utilizando fetch 18 let response = await fetch(ulrFetch, { 19 method: "GET", 20 headers: { 21 Accept: "application/json; odata=verbose", 22 }, 23 }); 24 25 // Verificar si la respuesta es exitosa 26 if (!response.ok) { 27 throw new Error(`Error en la consulta de Noticias: ${response.statusText}`); 28 } 29 30 // Obtener los datos de la respuesta en formato JSON 31 let data = await response.json(); 32 33 // Verificar que existan datos y data.d 34 if (data && data.d) { 35 let info = data.d.results; 36 // Verificar que existan resultados en data.d.results 37 if (info) { 38 // Filtrar los resultados que coinciden con el término de búsqueda, incluso sin tildes 39 const resultadosFiltrados = info.filter(item => { 40 // Verificar que item y item.Title no sean null o undefined 41 if (item && item.Title) { 42 const tituloNormalizado = quitarTildes(item.Title.toLowerCase()); 43 return tituloNormalizado.includes(terminoNormalizado); 44 } 45 return false; // Excluir elementos sin tÃtulo 46 }); 47 48 // Mapear los resultados filtrados a un nuevo formato y devolverlos 49 const resultadosNot = resultadosFiltrados.map(item => ({ 50 Title: item.Title || "", // Utilizar un valor por defecto si Title es null o undefined 51 url: `${location.protocol}//${location.host}/NuestraAlcaldia/SaladePrensa/Paginas/${item.LinkFilename}`, 52 id: item.ID, 53 module: "/NuestraAlcaldia/SaladePrensa/", 54 })); 55 return resultadosNot; 56 } 57 } 58 59 } catch (error) { 60 // Manejar errores de consulta 61 console.error(`Error en la consulta de Noticias: ${error.message}`); 62 throw error; 63 } 64}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.