fix error + format
This commit is contained in:
+61
-60
@@ -1,78 +1,79 @@
|
||||
const fs = require('fs');
|
||||
const swaggerAutogen = require('swagger-autogen')();
|
||||
const fs = require('fs')
|
||||
const swaggerAutogen = require('swagger-autogen')()
|
||||
|
||||
const doc = {
|
||||
info: {
|
||||
title: 'IPost API',
|
||||
description: 'the official IPost.rocks API documentation',
|
||||
},
|
||||
host: 'ipost.rocks',
|
||||
schemes: ['https'],
|
||||
securityDefinitions: {
|
||||
appTokenAuthHeader: {
|
||||
type: 'apiKey',
|
||||
in: 'header', // can be 'header', 'query' or 'cookie'
|
||||
name: 'ipost-auth-token', // name of the header, query parameter or cookie
|
||||
description: 'authenticate using the authentication object in the header'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const outputFile = './swagger-api.json';
|
||||
const tempFile = './swagger-output.json';
|
||||
const endpointsFiles = ['./server.js'];
|
||||
|
||||
function pushdirectory(currentpath) {
|
||||
fs.readdirSync(currentpath, {
|
||||
withFileTypes: true
|
||||
}).forEach(dirent => {
|
||||
if (dirent.isFile()) {
|
||||
endpointsFiles.push(currentpath + dirent.name);
|
||||
} else {
|
||||
pushdirectory(currentpath + dirent.name + "/");
|
||||
}
|
||||
});
|
||||
info: {
|
||||
title: 'IPost API',
|
||||
description: 'the official IPost.rocks API documentation',
|
||||
},
|
||||
host: 'ipost.rocks',
|
||||
schemes: ['https'],
|
||||
securityDefinitions: {
|
||||
appTokenAuthHeader: {
|
||||
type: 'apiKey',
|
||||
in: 'header', // can be 'header', 'query' or 'cookie'
|
||||
name: 'ipost-auth-token', // name of the header, query parameter or cookie
|
||||
description:
|
||||
'authenticate using the authentication object in the header',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
pushdirectory("./routes/");
|
||||
const outputFile = './swagger-api.json'
|
||||
const tempFile = './swagger-output.json'
|
||||
const endpointsFiles = ['./server.js']
|
||||
|
||||
swaggerAutogen(tempFile, endpointsFiles, doc);
|
||||
function pushdirectory(currentpath) {
|
||||
fs.readdirSync(currentpath, {
|
||||
withFileTypes: true,
|
||||
}).forEach((dirent) => {
|
||||
if (dirent.isFile()) {
|
||||
endpointsFiles.push(currentpath + dirent.name)
|
||||
} else {
|
||||
pushdirectory(currentpath + dirent.name + '/')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
pushdirectory('./routes/')
|
||||
|
||||
swaggerAutogen(tempFile, endpointsFiles, doc)
|
||||
|
||||
/*
|
||||
Replace some error codes with own error codes, as described in error_codes.txt
|
||||
*/
|
||||
const to_replace = {
|
||||
"401": "login error (invalid cookie)",
|
||||
"402": "login error (bad cookie)",
|
||||
"403": "login error (no cookie)",
|
||||
|
||||
"410": "argument/data error",
|
||||
"411": "argument/data error",
|
||||
"412": "argument/data error",
|
||||
"413": "argument/data error",
|
||||
"414": "argument/data error",
|
||||
"415": "argument/data error",
|
||||
"416": "argument/data error",
|
||||
"417": "argument/data error",
|
||||
"418": "argument/data error",
|
||||
"419": "argument/data error",
|
||||
"420": "invalid authetication object",
|
||||
|
||||
401: 'login error (invalid cookie)',
|
||||
402: 'login error (bad cookie)',
|
||||
403: 'login error (no cookie)',
|
||||
|
||||
410: 'argument/data error',
|
||||
411: 'argument/data error',
|
||||
412: 'argument/data error',
|
||||
413: 'argument/data error',
|
||||
414: 'argument/data error',
|
||||
415: 'argument/data error',
|
||||
416: 'argument/data error',
|
||||
417: 'argument/data error',
|
||||
418: 'argument/data error',
|
||||
419: 'argument/data error',
|
||||
420: 'invalid authetication object',
|
||||
}
|
||||
|
||||
let file = JSON.parse(fs.readFileSync(tempFile, 'utf8'));
|
||||
let file = JSON.parse(fs.readFileSync(tempFile, 'utf8'))
|
||||
|
||||
for (let path in file.paths) {
|
||||
for (let method in file.paths[path]) {
|
||||
for (let response in file.paths[path][method].responses) {
|
||||
if (to_replace[response]) {
|
||||
file.paths[path][method].responses[response].description = to_replace[response];
|
||||
}
|
||||
for (let method in file.paths[path]) {
|
||||
for (let response in file.paths[path][method].responses) {
|
||||
if (to_replace[response]) {
|
||||
file.paths[path][method].responses[response].description =
|
||||
to_replace[response]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
file = JSON.stringify(file);
|
||||
file = JSON.stringify(file)
|
||||
console.log(file)
|
||||
fs.writeFileSync(outputFile, file);
|
||||
fs.rmSync(tempFile);
|
||||
fs.writeFileSync(outputFile, file)
|
||||
fs.rmSync(tempFile)
|
||||
|
||||
Reference in New Issue
Block a user