diff options
Diffstat (limited to 'school/node_modules/pronote-api/src/server/schemas/index.js')
-rw-r--r-- | school/node_modules/pronote-api/src/server/schemas/index.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/school/node_modules/pronote-api/src/server/schemas/index.js b/school/node_modules/pronote-api/src/server/schemas/index.js new file mode 100644 index 0000000..099d358 --- /dev/null +++ b/school/node_modules/pronote-api/src/server/schemas/index.js @@ -0,0 +1,40 @@ +const path = require('path'); +const fs = require('fs').promises; + +const { buildSchema } = require('graphql'); + +const date = require('../date'); + +const SCHEMAS = ['student', 'parent']; + +async function readFile(name) +{ + const file = path.join(__dirname, name); + const content = await fs.readFile(file); + + return content.toString(); +} + +async function readSchema(common, name) +{ + const content = await readFile(name + '.graphql'); + const schema = buildSchema(common + '\n' + content); + + Object.assign(schema._typeMap.Date, date); + + return schema; +} + +async function getSchemas() +{ + const common = await readFile('common.graphql'); + const result = {}; + + for (const schema of SCHEMAS) { + result[schema] = await readSchema(common, schema); + } + + return result; +} + +module.exports = getSchemas; |