From 2c4ae43e688a9873e86211ea0e7aeb9ba770dd77 Mon Sep 17 00:00:00 2001 From: Minteck Date: Tue, 18 Oct 2022 08:59:09 +0200 Subject: Update --- .../pronote-api/src/fetch/pronote/menu.js | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 alarm/node_modules/pronote-api/src/fetch/pronote/menu.js (limited to 'alarm/node_modules/pronote-api/src/fetch/pronote/menu.js') diff --git a/alarm/node_modules/pronote-api/src/fetch/pronote/menu.js b/alarm/node_modules/pronote-api/src/fetch/pronote/menu.js new file mode 100644 index 0000000..988c168 --- /dev/null +++ b/alarm/node_modules/pronote-api/src/fetch/pronote/menu.js @@ -0,0 +1,42 @@ +const { toPronoteDate } = require('../../data/dates'); +const parse = require('../../data/types'); + +const navigate = require('./navigate'); + +const PAGE_NAME = 'PageMenus'; +const TAB_ID = 10; +const ACCOUNTS = ['student', 'parent']; + +async function getMenu(session, user, day = new Date()) +{ + const menu = await navigate(session, user, PAGE_NAME, TAB_ID, ACCOUNTS, { + date: { + _T: 7, + V: toPronoteDate(day) + } + }); + + if (!menu) { + return null; + } + + return { + hasLunch: menu.AvecRepasMidi, + hasDiner: menu.AvecRepasSoir, + filledWeeks: parse(menu.DomaineDePresence), + menus: parse(menu.ListeJours, false).map(({ Date, ListeRepas }) => ({ + date: parse(Date), + meals: parse(ListeRepas, ({ ListePlats }) => ({ + content: parse(ListePlats, ({ ListeAliments }) => ({ + lines: parse(ListeAliments, ({ listeLabelsAlimentaires }) => ({ + labels: parse(listeLabelsAlimentaires, ({ couleur }) => ({ + color: couleur + })) + })) + })) + })) + })) + }; +} + +module.exports = getMenu; -- cgit