UNPKG

node-api-document

Version:

🚀 Generate beautiful, interactive API documentation for Node.js/Express applications with zero configuration. Features include password protection, custom branding, responsive design, and easy integration. Perfect for REST APIs, microservices, and web ap

42 lines (37 loc) • 1.44 kB
var express = require('express'); var path = require('path'); var GLOBALS = require('../config/constants'); app = express() app.set('view engine', 'ejs'); exports.index = function (req, res) { var message = ''; res.render(path.join(__dirname + '/views/index.ejs'), { message: message, GLOBALS: GLOBALS }); }; exports.login = function (req, res) { if (req.method == "POST") { if (req?.body?.password == process?.env?.API_PASSWORD) { req.session.user = process?.env?.API_PASSWORD; req.session.save(); res.redirect(`${GLOBALS.API_DOC_BASE_URL_PATH}dashboard`); } else { res.render(path.join(__dirname + '/views/index.ejs'), { message: 'Please enter valid password.', GLOBALS: GLOBALS }); } } else { res.render(path.join(__dirname + '/views/index.ejs'), { message: '', GLOBALS: GLOBALS }); } }; exports.dashboard = function (req, res, next) { if (req.session.user == null) { res.redirect(`${GLOBALS.API_DOC_BASE_URL_PATH}login`); return; } else { const apiDoc = req?.apiDoc || []; const acceptHeaders = req?.acceptHeaders || ''; res.render(path.join(__dirname + '/views/api_doc.ejs'), { GLOBALS: GLOBALS, apiDoc, acceptHeaders }); } }; exports.logout = function (req, res) { req.session.destroy(function (err) { res.redirect(`${GLOBALS.API_DOC_BASE_URL_PATH}login`); }); };