UNPKG

@agatee/cli

Version:

CLI for Agatee App

41 lines (40 loc) 2.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.controllerStarterCode = void 0; var text_1 = require("../../../utils/text"); var prettier_1 = require("prettier"); var controllerStarterCode = function (params, pathName) { var _a; var name = (0, text_1.camelCase)(pathName); var capitalizedComponentName = (0, text_1.capitalize)(name); var addMongoose = params.additionalParams['mongoose-model'] || params.additionalParams['mm']; var endpoints = { create: false, read: false, update: false, delete: false }; if (params.additionalParams['endpoints'] || params.additionalParams['e']) { var endpointOption = params.additionalParams['endpoints'] || params.additionalParams['e']; var endpointValue = ((_a = endpointOption.values[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || ''; endpoints.create = endpointValue.includes('c'); endpoints.read = endpointValue.includes('r'); endpoints.update = endpointValue.includes('u'); endpoints.delete = endpointValue.includes('d'); } var contentHeader = "import { Response, Request } from 'express';\n"; contentHeader += "import { Injectable } from '@agatee/core';\n\n"; contentHeader += "import { " + capitalizedComponentName + "Service } from './" + pathName + ".service';\n\n"; var content = "@Injectable()\nexport class " + capitalizedComponentName + "Controller {\n\nconstructor(private service: " + capitalizedComponentName + "Service) {}\n"; if (addMongoose && endpoints.create) { content += ("\nasync create(req: Request, res: Response) {\n const data = await this.service.create(req.body);\n res.status(200).json({data});\n }\n"); } if (addMongoose && endpoints.read) { content += ("\nasync list(req: Request, res: Response) {\n const data = await this.service.getAll();\n res.status(200).json({data});\n }\n"); content += ("\nasync read(req: Request, res: Response) {\n const data = await this.service.getById({id: req.params.id});\n res.status(200).json({data});\n }\n"); } if (addMongoose && endpoints.update) { content += ("\nasync update(req: Request, res: Response) {\n await this.service.updateById({id: req.params.id, update: req.body});\n const data = await this.service.getById({id: req.params.id})\n res.status(200).json({data});\n }\n"); } if (addMongoose && endpoints.delete) { content += ("\nasync delete(req: Request, res: Response) {\n await this.service.deleteById({id: req.params.id});\n res.status(200).json({message: 'Deleted'});\n }\n"); } content += "\n}\n"; return contentHeader + (0, prettier_1.format)(content, { parser: 'typescript' }); }; exports.controllerStarterCode = controllerStarterCode;