Skip to content
Snippets Groups Projects
Unverified Commit dd4a2bcd authored by Marvin's avatar Marvin
Browse files

display 'Niemand :(' if mensa.jetzt respond with empty array

parent 41abfe97
Branches
No related tags found
No related merge requests found
...@@ -6,7 +6,7 @@ import PanelContent from "../../meta/PanelContent"; ...@@ -6,7 +6,7 @@ import PanelContent from "../../meta/PanelContent";
type MensaJetztAPIResponse = { type MensaJetztAPIResponse = {
day: string, day: string,
date: string, date: string,
attendance: Attendee[] attendance: Attendee[],
} }
type Attendee = { type Attendee = {
...@@ -14,7 +14,7 @@ type Attendee = { ...@@ -14,7 +14,7 @@ type Attendee = {
"name_modifiers": string, "name_modifiers": string,
"time": string, "time": string,
"canteen": string, "canteen": string,
"color": string "color": string,
} }
type Attendance = { [time: string]: Attendee[] } type Attendance = { [time: string]: Attendee[] }
...@@ -25,11 +25,10 @@ const MensaJetztPanel = () => { ...@@ -25,11 +25,10 @@ const MensaJetztPanel = () => {
useEffect(() => { useEffect(() => {
const update = async () => { const update = async () => {
try { try {
// Request the API
const request = await fetch(`https://mensa.jetzt/api/entries/`); const request = await fetch(`https://mensa.jetzt/api/entries/`);
if (request.status !== 200) { if (request.status !== 200) {
setMarqueeContent("Niemand :(") setMarqueeContent("Niemand :(");
return; return;
} }
...@@ -42,32 +41,34 @@ const MensaJetztPanel = () => { ...@@ -42,32 +41,34 @@ const MensaJetztPanel = () => {
...accu, ...accu,
[curr.time]: [ [curr.time]: [
...accu[curr.time], ...accu[curr.time],
curr curr,
] ]
} }
} else { } else {
return { return {
...accu, ...accu,
[curr.time]: [curr] [curr.time]: [curr],
} }
} }
}, {}); }, {});
let marquee = ""; let marquee = "";
for (const time of Object.keys(attendance).sort()) { for (const time of Object.keys(attendance).sort()) {
marquee += " | " + time + " : " + (attendance[time].map(a => a.name).join(", ")); marquee += " | " + time + " - " + (attendance[time].map(a => a.name).join(", "));
} }
if (marquee !== "") { if (marquee !== "") {
marquee += " |" marquee += " |";
} }
setMarqueeContent(marquee.trim()) marquee = marquee.trim();
let marqueeContent = marquee ? marquee : 'Niemand :(';
setMarqueeContent(marqueeContent);
} }
catch (e) { catch (e) {
console.warn("mensa.jetzt not showing data because", e); console.warn("mensa.jetzt not showing data because", e);
setMarqueeContent("Niemand :(") setMarqueeContent("Niemand :(");
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment