const defaults = require('./defaults') const asyncHandler = require('express-async-handler') module.exports = (opts) => { opts = defaults(opts) const { app, controller } = opts if (controller.list) app.get(`/api/${opts.paramPlural}`, asyncHandler(controller.list)) if (controller.create) app.post(`/api/${opts.paramPlural}`, asyncHandler(controller.create)) if (controller.trash) app.get(`/api/${opts.paramPlural}/trash`, asyncHandler(controller.trash)) if (controller.read) app.get(`/api/${opts.paramPlural}/:id`, asyncHandler(controller.read)) if (controller.update) app.patch(`/api/${opts.paramPlural}/:id`, asyncHandler(controller.update)) if (controller.delete) app.delete(`/api/${opts.paramPlural}/:id`, asyncHandler(controller.delete)) if (controller.undelete) app.delete(`/api/${opts.paramPlural}/trash/:id`, asyncHandler(controller.undelete)) }