collinenlucy.nl/client/rsvps_list.js

44 lines
No EOL
1.3 KiB
JavaScript

function createRsvpEntry(rsvp) {
const table = document.getElementById('rsvpsTable');
const tbody = table.children.item(0)
const { attending, partyMembers } = rsvp;
for (const member of partyMembers) {
const newRow = document.createElement('tr');
const attendingColumn = document.createElement('td');
attendingColumn.innerText = attending ? '✅' : '❌';
const nameColumn = document.createElement('td');
nameColumn.innerText = member.name;
const childColumn = document.createElement('td');
childColumn.innerText = member.child ? '👶' : '🧓';
const dietaryPreferencesColumn = document.createElement('td');
dietaryPreferencesColumn.innerText = member.dietaryPreferences.length > 0 ? member.dietaryPreferences : 'n/a';
newRow.appendChild(attendingColumn);
newRow.appendChild(nameColumn);
newRow.appendChild(childColumn);
newRow.appendChild(dietaryPreferencesColumn);
tbody.appendChild(newRow);
}
}
async function getRsvps() {
const token = Object.fromEntries(
document.cookie.split(";").map((x) => x.trim().split("="))
)['token']
const resp = await fetch('/api/rsvps', { headers: { 'Authorization': `Basic ${token}`} });
const rsvps = await resp.json()
for (const rsvp of rsvps) {
createRsvpEntry(rsvp);
}
}
window.onload = async function () {
await getRsvps();
};