fastify-mongoose-rest
Version:
Rest API generator tools for fastify and mongoose
34 lines (31 loc) • 1.04 kB
JavaScript
const {
createInsertHandler,
createRemoveHandler,
createUpdateHandler,
createSearchHandler,
} = require('./src');
/**
* Construct new fastify mongoose rest object
* @param {Object} Model Mongoose model
* @param {Object} options Options object
* @param {Boolean} options.runValidators Run validators on update
* @param {Boolean} options.returnNewOnUpdate Return new on update
* @param {Boolean} options.upsertOnUpdate Upsert value on update
*/
module.exports = function construct(Model, options = {}) {
if (!Model) {
throw new Error('Model is required argument');
}
return {
find: createSearchHandler(Model),
findOne: createSearchHandler(Model, { findOne: true }),
search: createSearchHandler(Model, { post: true }),
create: createInsertHandler(Model),
update: createUpdateHandler(Model, {
runValidators: options.runValidators || true,
new: options.returnNewOnUpdate || true,
upsert: options.upsertOnUpdate || false,
}),
remove: createRemoveHandler(Model),
};
};