UNPKG

express-sequelize-autocrud

Version:

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

35 lines 1.67 kB
/* eslint-disable @typescript-eslint/no-unused-vars */ import { Router } from 'express'; import { buildOptionsFromConfig, runCustomMiddleware, } from '../middleware/config.js'; import { buildOptionsFromQueryParams, checkFilterableFields, checkSortableFields, setContentRange, } from '../middleware/query.js'; import { getSequelizeErrorMessage } from '../utils.js'; const getListRoute = (model, router, config, logger) => router.get('/', runCustomMiddleware(config.middleware), checkFilterableFields(config.filterableFields), checkSortableFields(config.sortableFields), async (req, res) => { const { pagination, middleware, filterableFields, sortableFields, ...sequelizeOptions } = config; try { const options = await buildOptionsFromConfig(sequelizeOptions, req, res); const queryOptions = buildOptionsFromQueryParams(req.query, options); if (pagination) { const { rows, count } = await model.findAndCountAll({ ...options, ...queryOptions, where: { ...options.where, ...queryOptions.where }, }); setContentRange(res, model.name, queryOptions.offset || 0, rows.length, count); res.json(rows); } else { const data = await model.findAll({ ...options, ...queryOptions, where: { ...options.where, ...queryOptions.where }, }); res.json(data); } } catch (error) { logger.error(error); res.status(500).json(getSequelizeErrorMessage(error)); } }); export default getListRoute; //# sourceMappingURL=getList.js.map