const axios = require('axios'); // Middleware function to fetch leagues data const fetchLeaguesData = async (req, res, next) => { try { // Array of years to fetch leagues data const league_ids = [2021]; /* Add more league IDs if needed */ // Array to store all leagues data let allLeagues = []; // Loop through each year and fetch leagues data for (const league_id of league_ids) { const response = await axios({ url: `http://api.football-data.org/v4/competitions/${league_id}/standings?season`, method: 'GET', headers: { 'X-Auth-Token': '0aa1ed31245d4a36b1ef5a79150324b3', // Add your API key here }, }); // Extract relevant data from the API response const league_data = response.data.standings[0].table.map(team => ({ competition: { league_id: response.data.competition.id, league_name: response.data.competition.name, league_emblem: response.data.competition.emblem }, standings: { table: { league_position: team.position, team_id: team.team.id, team_name: team.team.name, team_crest: team.team.crest }, }, })); // Concatenate leagues data to allLeagues array allLeagues = allLeagues.concat(league_data); } // Attach all leagues data to res.locals res.locals.leagues = allLeagues; next(); } catch (error) { console.error('Error fetching leagues data:', error); res.locals.leagues = []; // Set an empty array if there's an error next(); // Call next middleware or route handler } }; module.exports = fetchLeaguesData;