mirror of
https://github.com/Ladebeze66/devsite.git
synced 2025-12-15 13:36:49 +01:00
67 lines
2.4 KiB
TypeScript
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 [];
|
|
}
|
|
} |