UNPKG

node-mocker-server

Version:

File based Node REST API mock server

92 lines (75 loc) 1.83 kB
'use strict'; var Utils = require('../Utils'); var util = require('util'); var extend = util._extend; var AppControllerSingleton = require('./AppController'); var appController = AppControllerSingleton.getInstance(); /** * * @class ViewSchemaController * @constructor * */ function ViewSchemaController() { this.init(); } ViewSchemaController.prototype = extend(ViewSchemaController.prototype, Utils.prototype); ViewSchemaController.prototype = extend(ViewSchemaController.prototype, { constructor: ViewSchemaController, /** * * @method init * called by constructor * @public */ init: function () { this.options = appController.options; appController.app.get('/view/schema', this._viewFormatted.bind(this)); appController.app.get('/view/schema/file', this._viewFile.bind(this)); }, /** * @method _viewFile * @param {object} req * @param {object} res * @private */ _viewFile: function (req, res) { if (!req.query || !req.query.url) { res.send('Not Found'); return; } try { res.send(this.readFile(req.query.url)); } catch (err) { res.send('Not Found'); } }, /** * @method _viewFormatted * @param {object} req * @param {object} res * @private */ _viewFormatted: function (req, res) { if (!req.query || !req.query.url) { res.send('Not Found'); return; } try { var method = req.query.method || 'GET'; var title = (req.query.type || '') + ' Schema'; var path = (req.query.path || ''); res.render('service-schema.ejs', { pageTitle: title, title: title + ' | ' + method + ' | ' + path, subTitle: path, method: method, methodLower: method.toLowerCase(), schemaJSON: this.readFile(req.query.url), }); } catch (err) { res.send('Not Found'); } }, }); module.exports = ViewSchemaController;