From 3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 Mon Sep 17 00:00:00 2001 From: Minteck Date: Thu, 23 Feb 2023 19:34:56 +0100 Subject: Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated) --- .../node_modules/pronote-api/src/server/auth.js | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 includes/external/school/node_modules/pronote-api/src/server/auth.js (limited to 'includes/external/school/node_modules/pronote-api/src/server/auth.js') diff --git a/includes/external/school/node_modules/pronote-api/src/server/auth.js b/includes/external/school/node_modules/pronote-api/src/server/auth.js new file mode 100644 index 0000000..54962a2 --- /dev/null +++ b/includes/external/school/node_modules/pronote-api/src/server/auth.js @@ -0,0 +1,49 @@ +const { v4: uuid } = require('uuid'); + +const { loginStudent, loginParent } = require('../auth'); + +const sessions = {}; + +async function login({ url, username, password, cas, account = 'student' }) +{ + if (!url || !username || !password) { + throw { + http: 400, + message: 'Missing \'url\', or \'username\', or \'password\', or header \'Content-Type: application/json\'' + }; + } + + let func; + switch (account) { + case 'student': + func = loginStudent; + break; + case 'parent': + func = loginParent; + break; + default: + throw { + http: 400, + message: `Unknown account type '${account}'` + }; + } + + const token = uuid(); + sessions[token] = await func(url, username, password, cas); + + return { token }; +} + +// eslint-disable-next-line no-unused-vars +async function logout(_, token) +{ + delete sessions[token]; + return { success: true }; +} + +function getSession(token) +{ + return sessions[token]; +} + +module.exports = { login, logout, getSession }; -- cgit