const fs = require('fs'); function parseExampleRes(data) { let html = ''; let header_html = ""; if (data.response.headers.length > 0) { data.response.headers.forEach(elem => { if (elem.key === "Content-Type") { header_html += "
""+elem.key+"" : ""+elem.value+""
"; return; } }); } if (data.response.bodyOptions && data.response.bodyOptions !== "") { if (header_html === "") { Object.keys(data.response.bodyOptions).forEach(function(typeName) { if (typeName === "language") { header_html += `"Content-type" : "${data.response.bodyOptions[typeName]}"
`; return; } }); } } if (header_html !== "") { header_html = `Headers :
${header_html} `; html += header_html; } if (data.response.cookies.length > 0) { html += `Cookies :
`; data.response.cookies.forEach(elem => { html += """+elem.key+"" : ""+elem.value+""
"; }); } if (data.response.body !== "") { let body = `Body :
`; switch (typeof data.response.body) { case 'string': body += `${data.response.body}`; break; case 'object': body = ""; data.response.body.forEach(item => { body += `
${JSON.stringify(item, null, 2)}`; }); break; default: body = ""; break; } html += body; } return html; } function parseExampleReq(data) { let html = ''; let header_html = ""; if (data.request.header.length > 0) { data.request.header.forEach(elem => { if (elem.key === "Content-Type") { header_html += "
""+elem.key+"" : ""+elem.value+""
"; return; } }); } if (data.request.bodyOptions && data.request.bodyOptions !== "") { if (header_html === "") { Object.keys(data.request.bodyOptions).forEach(function(typeName) { if (typeName === "language") { header_html += `"Content-type" : "${data.request.bodyOptions[typeName]}"
`; return; } }); } } if (header_html !== "") { header_html = `Headers :
${header_html} `; html += header_html; } if(data.request.auth.length > 0) { html += "Auth :
"; data.request.auth.forEach(elem => { html += "key : "+elem.key+", value : "+elem.value+", type : "+elem.type+"
"; }); } if (data.request.variables.length > 0) { html += `Path Variables:
`; data.request.variables.forEach(elem => { html += """+elem.key+"" : ""+elem.value+""
"; }); } if (data.request.queryes.length > 0) { html += `Query Parameters :
`; data.request.queryes.forEach(elem => { html += """+elem.key+"" : ""+elem.value+""
"; }); } if (data.request.body !== "") { let body = `Body :
`; switch (typeof data.request.body) { case 'string': body += `${data.request.body}`; break; case 'object': data.request.body.forEach(item => { body += `
${JSON.stringify(item, null, 2)}`; }); break; default: body = ""; break; } html += body; } return html; } function generateExamples(data) { let html = `
Success :
`; if (data.success.length > 0) { data.success.forEach(function(item) { let desc = ""; if (item.desc && item.desc !== "") { desc = `Description : ${item.desc.replace(/ /g, " ")}
`; } html += `Request : ${item.name}
${desc}URL : ${item.request.url}
Method : ${item.request.method}
${parseExampleReq(item)}Response :
Status : ${item.response.status}
Code : ${item.response.code}
${parseExampleRes(item)}No examples
`; } html += `Exceptions :
`; if (data.exceptions.length > 0) { data.exceptions.forEach(function(item){ let desc = ""; if (item.desc && item.desc !== "") { desc = `Description : ${item.desc.replace(/ /g, " ")}
`; } html += `Request : ${item.name}
${desc}URL : ${item.request.url}
Method : ${item.request.method}
${parseExampleReq(item)}Response :
Code : ${item.response.code}
Status : ${item.response.status}
${parseExampleRes(item)}No examples
`; } return html; } function generateApiHtml(data) { let html = `""+elem.key+"" : ""+elem.value+""
"; }); } if(data.auth.length > 0) { auth_html="Auth :
"; data.auth.forEach(elem => { auth_html += "key : "+elem.key+", value : "+elem.value+", type : "+elem.type+"
"; }); } let body = "not required, leave blank"; switch (typeof data.body) { case 'string': if (data.body !== "") { body = `
${data.body}`; } break; case 'object': body = ""; data.body.forEach(item => { body += `
${JSON.stringify(item, null, 2)}`; }); break; default: body = "
not required, leave blank"; break; } if (data.bodyOptions && data.bodyOptions !== "") { Object.keys(data.bodyOptions).forEach(function(typeName) { if (typeName === "language") { header_html += `
"Content-type" : "${data.bodyOptions[typeName]}"
`; } }); } let variables = "not required, leave blank
"; if (data.variables.length > 0) { variables = ""; data.variables.forEach(elem => { variables += """+elem.key+"" : ""+elem.value+""
"; }); } let queryes = "not required, leave blank
"; if (data.queryes.length > 0) { queryes = ""; data.queryes.forEach(elem => { queryes += """+elem.key+"" : ""+elem.value+""
"; }); } if (header_html === "") { header_html = "not required, leave blank
"; } let desc = ""; if (data.desc && data.desc !== "") { desc = `Description : ${data.desc.replace(/ /g, " ")}
`; } html += `${desc}URL : ${data.url}
Method : ${data.method}
Headers :
${header_html+auth_html}Path Variables:
${variables}Query Parameters :
${queryes}Body :
${body}Examples :
${generateExamples(data.examples)}