UNPKG

sequelize-ts-boilerplate

Version:

A REST API scaffolding tool designed to scale and easily generate CRUD endpoints based on database schema design

94 lines (85 loc) 4.28 kB
import { Table } from "../../classes/Table"; import { IConfig } from "../../../interfaces/config"; import utils from "../../../utils/general-utils"; export function get(table: Table, config: IConfig) { const pkLower = config.ORM_GENERATE.pkIdentifier; const pkUpper = utils.capitalizeFirstLetter(pkLower); const upperCaseTableName = utils.capitalizeFirstLetter(table.tableName); const pluralizedLowerCaseTableName = utils.pluralize(table.tableName); const pluralizedUpperCaseTableName = utils.capitalizeFirstLetter(utils.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 }); } } `) }