"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var utils_1 = require("../../../commons/utils/utils");
/**
* Class which generates string content for router.js configuration file
*
* @export
* @class Router
*/
var Router = (function () {
function Router() {
}
/**
* Generate router.js content file
* @param schema - database schema definition
* @return {string} - string generated content
*/
Router.prototype.getRouterConfig = function (schema) {
return "const router = require('express').Router();\n\n" + this.generateImportControllersData(schema) + "\n" + this.generateRouterUseData(schema) + "\nmodule.exports = router;";
};
/**
* Generate controllers imports data
* @param {Schema} schema - tables array
* @return {string} - multiple lines data
*/
Router.prototype.generateImportControllersData = function (schema) {
var importData = '';
importData += utils_1.default.formatLine('', 0, "const defaultController = require('../controllers/defaultController');");
schema.forEach(function (table) {
var model = utils_1.default.singular(table.name);
importData += utils_1.default.formatLine('', 0, "const " + model + "Controller = require('../controllers/" + model + "Controller');");
});
return importData;
};
/**
* Generate router.use data for every schema table
* @param {Schema] schema - tables array
* @return {string} - multiple lines data, each line having one router.use('/models', modelController);
*/
Router.prototype.generateRouterUseData = function (schema) {
var routerData = '';
routerData += utils_1.default.formatLine('', 0, "router.use('/', defaultController);");
schema.forEach(function (table) {
var model = utils_1.default.singular(table.name);
routerData += utils_1.default.formatLine('', 0, "router.use('/" + model + "s', " + model + "Controller);");
});
return routerData;
};
return Router;
}());
exports.Router = Router;
exports.default = new Router();
|