sequelize-ts-boilerplate
Version:
A REST API scaffolding tool designed to scale and easily generate CRUD endpoints based on database schema design
26 lines (24 loc) • 1.61 kB
text/typescript
import { Table } from "../../classes/Table";
import { IConfig } from "../../../interfaces/config";
import utils from "../../../utils/general-utils";
import { CONSTANT } from "../../../utils/constants";
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 pluralizedTableName = utils.pluralize(upperCaseTableName);
const pluralizedUpperCaseTableName = utils.capitalizeFirstLetter(pluralizedTableName);
return (
`return Router()
${CONSTANT.GENERATED_ROUTES}
.get("/${pluralizedTableName}", ${upperCaseTableName}Controller.getAll${pluralizedUpperCaseTableName})
.get("/${pluralizedTableName}/:${pkLower}", ${upperCaseTableName}Controller.getAll${pluralizedUpperCaseTableName}By${pkUpper})
.get("/${table.tableName}/:${pkLower}", ${upperCaseTableName}Controller.get${upperCaseTableName}By${pkUpper})
.post("/${table.tableName}", ${upperCaseTableName}Controller.save${upperCaseTableName})
.post("/${pluralizedTableName}", ${upperCaseTableName}Controller.batchSave${pluralizedUpperCaseTableName})
.put("/${table.tableName}", ${upperCaseTableName}Controller.update${upperCaseTableName})
.delete("/${table.tableName}", ${upperCaseTableName}Controller.delete${upperCaseTableName}By${pkUpper})
.delete("/${table.tableName}/:${pkLower}", ${upperCaseTableName}Controller.delete${upperCaseTableName}By${pkUpper})
`
)
}