UNPKG

express-sequelize-autocrud

Version:

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

29 lines 1.4 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_UPDATABLE_FIELDS } from '../config.js'; const updateRoute = (sequelize, model, router, config, logger) => router.put('/:resourceId', runCustomMiddleware(config.middleware), checkBodyFields(config.updatableFields || DEFAULT_UPDATABLE_FIELDS), async (req, res) => { const { middleware, updatableFields, byField, ...sequelizeOptions } = config; try { const options = await buildOptionsFromConfig(sequelizeOptions, req, res); const whereField = byField || 'id'; await sequelize.transaction(async (t) => { const data = await model.update(req.body, { ...options, where: { [whereField]: req.params.resourceId }, returning: true, transaction: t, }); res.status(201).json({ affectedCount: data[0], affectedRows: data[1] }); }); } catch (error) { logger.error(error); res.status(500).json(getSequelizeErrorMessage(error)); } }); export default updateRoute; //# sourceMappingURL=update.js.map