devsite/app/utils/fetchDataCompetences.ts
2025-01-31 18:02:55 +00:00

67 lines
2.4 KiB
TypeScript

import qs from "qs"; // Importation de qs pour construire des requêtes de chaîne de requête
// Fonction pour récupérer une compétence spécifique
export async function fetchDataCompetences(collection: string, slug: string) {
// Construction de la requête avec des filtres et des relations à peupler
const query = qs.stringify({
filters: {
slug: { $eq: slug },
},
populate: "picture", // On garde les images des compétences
});
// Log de la requête API pour le débogage
console.log(`🛠️ Requête API Compétence : http://localhost:1337/api/${collection}?${query}`);
try {
// Envoi de la requête à l'API Strapi
const response = await fetch(`http://localhost:1337/api/${collection}?${query}`, {
cache: "no-store",
});
// Vérification de la réponse de l'API
if (!response.ok) {
throw new Error(`Failed to fetch competences data: ${response.status}`);
}
// Récupération des données de la réponse
const data = await response.json();
console.log("✅ Données reçues (Compétence) :", data);
// Retourne la première compétence ou null si aucune donnée n'est trouvée
return data.data[0] || null;
} catch (error) {
// Gestion des erreurs et log des erreurs
console.error("❌ Erreur lors de la récupération des compétences :", error);
return null;
}
}
// Fonction pour récupérer les données du glossaire
export async function fetchDataGlossaire() {
try {
// Log de la requête API pour le débogage
console.log("🛠️ Requête API Glossaire : http://localhost:1337/api/glossaires?populate=images");
// Envoi de la requête à l'API Strapi
const response = await fetch("http://localhost:1337/api/glossaires?populate=images", {
cache: "no-store",
});
// Vérification de la réponse de l'API
if (!response.ok) {
throw new Error(`Failed to fetch glossaire data: ${response.status}`);
}
// Récupération des données de la réponse
const data = await response.json();
console.log("✅ Données reçues (Glossaire) :", data);
// Retourne les données du glossaire ou un tableau vide si aucune donnée n'est trouvée
return data.data || [];
} catch (error) {
// Gestion des erreurs et log des erreurs
console.error("❌ Erreur lors de la récupération du glossaire :", error);
return [];
}
}