express-sequelize-autocrud
Version:
Express Sequelize AutoCRUD: Simplify API development with automatic CRUD routes for Sequelize models in Express.js.
26 lines • 1.24 kB
JavaScript
/* eslint-disable @typescript-eslint/no-unused-vars */
import { Router } from 'express';
import { buildOptionsFromConfig, runCustomMiddleware, } from '../middleware/config.js';
import { checkBodyArrayFields } from '../middleware/body.js';
import { getSequelizeErrorMessage } from '../utils.js';
import { Sequelize } from 'sequelize';
import { DEFAULT_CREATABLE_FIELDS } from '../config.js';
const bulkCreateRoute = (sequelize, model, router, config, logger) => router.post(config.path || '/bulk', runCustomMiddleware(config.middleware), checkBodyArrayFields(config.creatableFields || DEFAULT_CREATABLE_FIELDS), async (req, res) => {
const { middleware, creatableFields, path, ...sequelizeOptions } = config;
try {
const options = await buildOptionsFromConfig(sequelizeOptions, req, res);
await sequelize.transaction(async (t) => {
const data = await model.bulkCreate(req.body, {
...options,
transaction: t,
});
res.status(201).json(data);
});
}
catch (error) {
logger.error(error);
res.status(500).json(getSequelizeErrorMessage(error));
}
});
export default bulkCreateRoute;
//# sourceMappingURL=bulkCreate.js.map