all files / generators/api/config/ router.js

100% Statements 23/23
100% Branches 0/0
100% Functions 7/7
100% Lines 23/23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53                                                           
"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();