coryd.dev/src/data/concerts.js

38 lines
973 B
JavaScript

import EleventyFetch from '@11ty/eleventy-fetch';
const { POSTGREST_URL, POSTGREST_API_KEY } = process.env;
const fetchAllConcerts = async () => {
try {
return await EleventyFetch(`${POSTGREST_URL}/optimized_concerts`, {
duration: '1h',
type: 'json',
fetchOptions: {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${POSTGREST_API_KEY}`
}
}
});
} catch (error) {
console.error('Error fetching concerts:', error);
return [];
}
};
const processConcerts = (concerts) =>
concerts.map((concert) => ({
...concert,
artist: concert.artist || { name: concert.artist_name_string, url: null }
}));
export default async function () {
try {
const concerts = await fetchAllConcerts();
return processConcerts(concerts);
} catch (error) {
console.error('Error fetching and processing concerts data:', error);
return [];
}
}