sequelize-ts-boilerplate
Version:
A REST API scaffolding tool designed to scale and easily generate CRUD endpoints based on database schema design
94 lines (87 loc) • 4.41 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const general_utils_1 = require("../../../utils/general-utils");
function get(table, config) {
const pkLower = config.ORM_GENERATE.pkIdentifier;
const pkUpper = general_utils_1.default.capitalizeFirstLetter(pkLower);
const upperCaseTableName = general_utils_1.default.capitalizeFirstLetter(table.tableName);
const pluralizedLowerCaseTableName = general_utils_1.default.pluralize(table.tableName);
const pluralizedUpperCaseTableName = general_utils_1.default.capitalizeFirstLetter(general_utils_1.default.pluralize(upperCaseTableName));
return (`
// GET ALL
public getAll${pluralizedUpperCaseTableName} = async (req: Request, res: Response): Promise<any> => {
try {
const ${pluralizedLowerCaseTableName} = <${upperCaseTableName}[]>await this._${table.tableName}Service.findAll${pluralizedUpperCaseTableName}();
respond(res, { data: { ${pluralizedLowerCaseTableName} } });
} catch (err) {
console.log("err: ", err);
respond(res, { err });
}
}
// GET ALL BY PRIMARY KEY
public getAll${pluralizedUpperCaseTableName}By${pkUpper} = async (req: Request, res: Response): Promise<any> => {
try {
const ${table.tableName} = await this._${table.tableName}Service.findAll${pluralizedUpperCaseTableName}By${pkUpper}(req.params.${pkLower});
respond(res, { data: { ${table.tableName} } });
} catch (err) {
console.log("err: ", err);
respond(res, { err });
}
}
// GET ONE BY PRIMARY KEY
public get${upperCaseTableName}By${pkUpper} = async (req: Request, res: Response): Promise<any> => {
try {
const ${table.tableName} = await this._${table.tableName}Service.findOne${upperCaseTableName}By${pkUpper}(req.params.${pkLower});
respond(res, { data: { ${table.tableName} } });
} catch (err) {
console.log("err: ", err);
respond(res, { err });
}
}
// PUT
public update${upperCaseTableName} = async (req: Request, res: Response): Promise<any> => {
try {
const reqBody: {${table.tableName}: ${upperCaseTableName}} = req.body;
const updates: any = await this._${table.tableName}Service.update${upperCaseTableName}(reqBody.${table.tableName});
respond(res, { data: { updates } });
} catch (err) {
console.log("err: ", err);
respond(res, { err });
}
}
// POST ONE
public save${upperCaseTableName} = async (req: Request, res: Response): Promise<any> => {
try {
const reqBody: {${table.tableName}: ${upperCaseTableName}} = req.body;
const saved${upperCaseTableName}: ${upperCaseTableName} = <${upperCaseTableName}>await this._${table.tableName}Service.save${upperCaseTableName}(reqBody.${table.tableName});
respond(res, { data: { saved${upperCaseTableName} } });
} catch (err) {
console.log("err: ", err);
respond(res, { err });
}
}
// POST BATCH
public batchSave${pluralizedUpperCaseTableName} = async (req: Request, res: Response): Promise<any> => {
try {
const reqBody: {${pluralizedUpperCaseTableName}: ${upperCaseTableName}[]} = req.body;
const saved${pluralizedUpperCaseTableName}: any = await this._${table.tableName}Service.batchSave${pluralizedUpperCaseTableName}(reqBody.${pluralizedUpperCaseTableName});
respond(res, { data: { saved${pluralizedUpperCaseTableName} } });
} catch (err) {
console.log("err: ", err);
respond(res, { err });
}
}
// DELETE
public delete${upperCaseTableName}By${pkUpper} = async (req: Request, res: Response): Promise<any> => {
try {
const deletes: any = await this._${table.tableName}Service.delete${upperCaseTableName}By${pkUpper}(req.body.${pkLower} || req.params.${pkLower});
respond(res, { data: { deletes } });
} catch (err) {
console.log("err: ", err);
respond(res, { err });
}
}
`);
}
exports.get = get;
//# sourceMappingURL=write-controller-crud-methods.js.map