summaryrefslogtreecommitdiff
path: root/school/node_modules/pronote-api/src/server/schemas/index.js
blob: 099d3580d1cc7d2d3a6d4a7e95cbb382e295e080 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;