UNPKG

express-sequelize-autocrud

Version:

Express Sequelize AutoCRUD: Simplify API development with automatic CRUD routes for Sequelize models in Express.js.

50 lines 1.97 kB
import { Router } from 'express'; import { getModel } from '../utils.js'; import { Sequelize } from 'sequelize'; import getListRoute from './getList.js'; import getOneRoute from './getOne.js'; import createRoute from './create.js'; import updateRoute from './update.js'; import deleteRoute from './delete.js'; import bulkCreateRoute from './bulkCreate.js'; const buildModelRoutes = (path, sequelize, config, logger) => { const router = Router(); const { model: m, operations } = config; const model = getModel(sequelize, m); logger.info(`Building Model [${model.name}]`); if (operations.getList) { getListRoute(model, router, operations.getList, logger); logger.info(['GET', path, '[getList]'].join(' ')); } if (operations.getOne) { getOneRoute(model, router, operations.getOne, logger); logger.info(['GET', `${path}/:resourceId`, '[getOne]'].join(' ')); } if (operations.create) { createRoute(sequelize, model, router, operations.create, logger); logger.info(['POST', path, '[create]'].join(' ')); } if (operations.bulkCreate) { bulkCreateRoute(sequelize, model, router, operations.bulkCreate, logger); logger.info([ 'POST', `${path}/${operations.bulkCreate.path || 'bulk'}`, '[bulkCreate]', ].join(' ')); } if (operations.update) { updateRoute(sequelize, model, router, operations.update, logger); logger.info(['PUT', `${path}/:resourceId`, '[update]'].join(' ')); } if (operations.delete) { deleteRoute(sequelize, model, router, operations.delete, logger); logger.info(['DELETE', `${path}/:resourceId`, '[delete]'].join(' ')); } if (operations.custom) { logger.warn(['WARNNING', 'Custom Routes enabled on', path].join(' ')); operations.custom(router); } return router; }; export default buildModelRoutes; //# sourceMappingURL=index.js.map