diff options
Diffstat (limited to 'includes/external/school/node_modules/pronote-api/src/server/index.js')
-rw-r--r-- | includes/external/school/node_modules/pronote-api/src/server/index.js | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/includes/external/school/node_modules/pronote-api/src/server/index.js b/includes/external/school/node_modules/pronote-api/src/server/index.js deleted file mode 100644 index 1693e1c..0000000 --- a/includes/external/school/node_modules/pronote-api/src/server/index.js +++ /dev/null @@ -1,47 +0,0 @@ -const { graphql } = require('graphql'); - -const http = require('./http'); -const context = require('./context'); -const getSchemas = require('./schemas'); -const { login, logout, getSession } = require('./auth'); - -async function start(host, port) -{ - const schemas = await getSchemas(); - - await http(host, port, { - graphql: ({ query, variables }, token) => handle(token, schemas, query, context, variables), - login: params => login(params), - logout: (_, token) => logout(token) - }); -} - -async function handle(token, schemas, query, context, variables) -{ - if (!token) { - throw { - http: 401, - message: 'Missing \'Token\' header' - }; - } - - if (!query) { - throw { - http: 400, - message: 'Missing \'query\' field or \'Content-Type: application/json\' header' - }; - } - - const session = getSession(token); - if (!session) { - throw { - http: 401, - message: 'Unknown session token' - }; - } - - const schema = schemas[session.type.name]; - return await graphql(schema, query, context(session), null, variables); -} - -module.exports = start; |