83 lines
2.1 KiB
JavaScript
83 lines
2.1 KiB
JavaScript
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;
|
|
}
|