all files / generators/api/controllers/ controller.js

100% Statements 10/10
100% Branches 0/0
100% Functions 4/4
100% Lines 10/10
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                                         
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
 * Class which generates string content for API controller files
 *
 * @export
 * @class Controller
 */
var Controller = (function () {
    function Controller() {
    }
    /**
     * Generate default controller string content
     * @return {string} - default controller content
     */
    Controller.prototype.getDefaultController = function () {
        return "const defaultRoute = require('express').Router();\n\ndefaultRoute.get('/', (request, response, next) => {\n  response.json({ message: 'Hello from Generaptr' });\n});\n\nmodule.exports = defaultRoute;";
    };
    /**
     * Generate controller content for one model.
     * @param {String} model - model string value. e.g: User
     * @return {string} - string content for generated controller
     */
    Controller.prototype.getController = function (model) {
        return "const " + model + "Route = require('express').Router();\nconst " + model + "Service = require('../services/" + model + "Service');\nconst Util = require('../commons/util');\nconst STATUS_CODE = require('../commons/constants/statusCode');\n\n" + model + "Route.post('/', (request, response) => {\n  " + model + "Service.save(request.body)\n    .then(id => {\n      response.header('Location', Util.generateLocationUri(request, id));\n      response.status(STATUS_CODE.CREATED);\n      response.end();\n    })\n    .catch(err => {\n      response.status(err.status);\n      response.json(err);\n    });\n});\n\n" + model + "Route.get('/:id', (request, response) => {\n  " + model + "Service.get(request.params.id)\n    .then(data => {\n      response.status(STATUS_CODE.OK);\n      response.json(data);\n    })\n    .catch(err => {\n      response.status(err.status);\n      response.json(err);\n    });\n});\n\n" + model + "Route.delete('/:id', (request, response) => {\n  " + model + "Service.delete(request.params.id)\n    .then(() => {\n      response.status(STATUS_CODE.NO_CONTENT);\n      response.end();\n    })\n    .catch(err => {\n      response.status(err.status);\n      response.json(err);\n    });\n});\n\n" + model + "Route.put('/:id', (request, response) => {\n  " + model + "Service.update(request.params.id, request.body)\n    .then(data => {\n      response.status(STATUS_CODE.OK);\n      response.json(data);\n    })\n    .catch(err => {\n      response.status(err.status);\n      response.json(err);\n    });\n});\n\n" + model + "Route.get('/', (request, response) => {\n  " + model + "Service.getAll(request.query.offset, request.query.limit)\n    .then(data => {\n      if (!data || data.size === 0) {\n        response.status(STATUS_CODE.NO_CONTENT);\n        response.end();\n      } else {\n        response.status(STATUS_CODE.OK);\n        response.json(data);\n      }\n    })\n    .catch(err => {\n      response.status(err.status);\n      response.json(err);\n    });\n});\n\nmodule.exports = " + model + "Route;";
    };
    return Controller;
}());
exports.Controller = Controller;
exports.default = new Controller();