diff options
author | Minteck <contact@minteck.org> | 2023-01-10 14:54:04 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2023-01-10 14:54:04 +0100 |
commit | 99c1d9af689e5325f3cf535c4007b3aeb8325229 (patch) | |
tree | e663b3c2ebdbd67c818ac0c5147f0ce1d2463cda /school/node_modules/pronote-api/src/server/auth.js | |
parent | 9871b03912fc28ad38b4037ebf26a78aa937baba (diff) | |
download | pluralconnect-99c1d9af689e5325f3cf535c4007b3aeb8325229.tar.gz pluralconnect-99c1d9af689e5325f3cf535c4007b3aeb8325229.tar.bz2 pluralconnect-99c1d9af689e5325f3cf535c4007b3aeb8325229.zip |
Update - This is an automated commit
Diffstat (limited to 'school/node_modules/pronote-api/src/server/auth.js')
-rw-r--r-- | school/node_modules/pronote-api/src/server/auth.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/school/node_modules/pronote-api/src/server/auth.js b/school/node_modules/pronote-api/src/server/auth.js new file mode 100644 index 0000000..54962a2 --- /dev/null +++ b/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 }; |