diff options
author | Minteck <contact@minteck.org> | 2023-02-23 19:34:56 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2023-02-23 19:34:56 +0100 |
commit | 3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 (patch) | |
tree | 75be5fba4368472fb11c8015aee026b2b9a71888 /includes/external/school/node_modules/pronote-api/src/server/auth.js | |
parent | 8cc1f13c17fa2fb5a4410542d39e650e02945634 (diff) | |
download | pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.gz pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.bz2 pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.zip |
Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated)
Diffstat (limited to 'includes/external/school/node_modules/pronote-api/src/server/auth.js')
-rw-r--r-- | includes/external/school/node_modules/pronote-api/src/server/auth.js | 49 |
1 files changed, 49 insertions, 0 deletions
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 }; |