UNPKG

express-sequelize-autocrud

Version:

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

26 lines 1.19 kB
/* eslint-disable @typescript-eslint/no-unused-vars */ import { Router } from 'express'; import { buildOptionsFromConfig, runCustomMiddleware, } from '../middleware/config.js'; import { checkBodyFields } from '../middleware/body.js'; import { getSequelizeErrorMessage } from '../utils.js'; import { Sequelize } from 'sequelize'; import { DEFAULT_CREATABLE_FIELDS } from '../config.js'; const createRoute = (sequelize, model, router, config, logger) => router.post('/', runCustomMiddleware(config.middleware), checkBodyFields(config.creatableFields || DEFAULT_CREATABLE_FIELDS), async (req, res) => { const { middleware, creatableFields, ...sequelizeOptions } = config; try { const options = await buildOptionsFromConfig(sequelizeOptions, req, res); await sequelize.transaction(async (t) => { const data = await model.create(req.body, { ...options, transaction: t, }); res.status(201).json(data); }); } catch (error) { logger.error(error); res.status(500).json(getSequelizeErrorMessage(error)); } }); export default createRoute; //# sourceMappingURL=create.js.map