dayjs.locale("fr"); function getDatesInMonth(month) { const year = dayjs().month(month).year(); const daysInMonth = dayjs(new Date(year, month, 0)).daysInMonth() + 1; const dates = {}; for (let day = 1; day <= daysInMonth; day++) { const currentDay = dayjs(new Date(year, month, day)); dates[parseInt(currentDay.format("DD"))] = []; } return dates; } async function getMapadoDates(monthNumb) { const contractId = "1941"; const firstDayOfMonth = dayjs() .month(monthNumb) .startOf("month") .format("YYYY-MM-DD"); const firstDayOfNextMonth = dayjs(firstDayOfMonth) .add(1, "month") .format("YYYY-MM-DD"); const requestEndPoint = 'event_dates' const requestParams = [ { name: 'itemsPerPage', value: 100 }, { name: 'contract', value: contractId }, { name: 'after', value: firstDayOfMonth }, { name: 'before', value: firstDayOfNextMonth }, { name: 'order', value: 'asc' } ] const requestFields = [ { name: 'startDate', }, { name: 'bookableStock', }, { name: 'ticketing', subfields: [ { name: "@id", }, { name: "title", }, { name: "venue", subfields: [ { name: "@id" }, { name: "address" }, { name: "zipCode" }, { name: "city" }, { name: "countryCode" }, { name: "timezone" }, ] }, ] }, ]; const requestOptions = { method: 'POST', body: JSON.stringify({requestEndPoint, requestParams, requestFields}) } const response = await fetch('/mapado.json', requestOptions); const json = await response.json(); const eventDates = json["hydra:member"]; console.log( `Événements Mapado de ${dayjs(firstDayOfMonth).format("MMMM")} ${dayjs( firstDayOfMonth ).format("YYYY")}`, eventDates ); const mapadoDates = eventDates.map((eventDate) => { const date = eventDate.startDate.slice(0, 10); const splittedDate = date.split("-"); const day = splittedDate[2]; return { day: day, name: eventDate.ticketing.title, }; }); return mapadoDates; }