2017-01-03 20:56:20 -08:00
|
|
|
'use strict'
|
|
|
|
|
2017-01-03 19:59:20 -08:00
|
|
|
const swaggerJSDoc = require('swagger-jsdoc');
|
|
|
|
const fs = require('fs');
|
2017-01-03 20:56:20 -08:00
|
|
|
const yaml = require('js-yaml');
|
2017-01-03 19:59:20 -08:00
|
|
|
|
|
|
|
const apiRoot = './src/api/endpoints';
|
|
|
|
const files = [
|
2017-01-03 22:04:54 -08:00
|
|
|
'users.js',
|
|
|
|
'auth/session/generate.js',
|
|
|
|
'auth/session/userkey.js',
|
2017-01-03 19:59:20 -08:00
|
|
|
];
|
|
|
|
|
|
|
|
const errorDefinition = {
|
|
|
|
'type': 'object',
|
|
|
|
'properties':{
|
|
|
|
'error': {
|
|
|
|
'type': 'string',
|
|
|
|
'description': 'Error message'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var options = {
|
|
|
|
swaggerDefinition: {
|
|
|
|
swagger: '2.0',
|
|
|
|
info: {
|
|
|
|
title: 'Misskey API',
|
|
|
|
version: 'aoi',
|
|
|
|
},
|
2017-01-03 20:56:20 -08:00
|
|
|
host: 'api.misskey.xyz',
|
|
|
|
schemes: ['https'],
|
2017-01-03 19:59:20 -08:00
|
|
|
consumes: [
|
|
|
|
'application/x-www-form-urlencoded'
|
|
|
|
],
|
|
|
|
produces: [
|
|
|
|
'application/json'
|
|
|
|
]
|
|
|
|
},
|
|
|
|
apis: []
|
|
|
|
};
|
|
|
|
options.apis = files.map(c => {return `${apiRoot}/${c}`;});
|
|
|
|
|
2017-01-03 20:56:20 -08:00
|
|
|
if(fs.existsSync('.config/config.yml')){
|
|
|
|
var config = yaml.safeLoad(fs.readFileSync('./.config/config.yml', 'utf8'));
|
2017-01-03 22:14:34 -08:00
|
|
|
options.swaggerDefinition.host = `api.${config.url}`;
|
2017-01-03 20:56:20 -08:00
|
|
|
options.swaggerDefinition.schemes = config.https.enable ? ['https'] : ['http'];
|
|
|
|
}
|
|
|
|
|
2017-01-03 19:59:20 -08:00
|
|
|
var swaggerSpec = swaggerJSDoc(options);
|
|
|
|
swaggerSpec.definitions.Error = errorDefinition;
|
|
|
|
|
|
|
|
fs.writeFileSync('api-docs.json', JSON.stringify(swaggerSpec));
|
|
|
|
|