express-sequelize-autocrud
Version:
Express Sequelize AutoCRUD: Simplify API development with automatic CRUD routes for Sequelize models in Express.js.
30 lines • 1.12 kB
JavaScript
import { Router } from 'express';
import { buildOptionsFromConfig, runCustomMiddleware, } from '../middleware/config.js';
import { getSequelizeErrorMessage } from '../utils.js';
const getOneRoute = (model, router, config, logger) => router.get('/:resourceId', runCustomMiddleware(config.middleware), async (req, res) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { middleware, byField, ...sequelizeOptions } = config;
try {
const options = await buildOptionsFromConfig(sequelizeOptions, req, res);
const data = await (byField
? model.findOne({
...options,
where: { [byField]: req.params.resourceId },
})
: model.findByPk(req.params.resourceId, {
...options,
}));
if (data) {
res.json(data);
}
else {
res.sendStatus(404);
}
}
catch (error) {
logger.error(error);
res.status(500).json(getSequelizeErrorMessage(error));
}
});
export default getOneRoute;
//# sourceMappingURL=getOne.js.map