routes.js 872 B

1234567891011121314
  1. const defaults = require('./defaults')
  2. const asyncHandler = require('express-async-handler')
  3. module.exports = (opts) => {
  4. opts = defaults(opts)
  5. const { app, controller } = opts
  6. if (controller.list) app.get(`/api/${opts.paramPlural}`, asyncHandler(controller.list))
  7. if (controller.create) app.post(`/api/${opts.paramPlural}`, asyncHandler(controller.create))
  8. if (controller.trash) app.get(`/api/${opts.paramPlural}/trash`, asyncHandler(controller.trash))
  9. if (controller.read) app.get(`/api/${opts.paramPlural}/:id`, asyncHandler(controller.read))
  10. if (controller.update) app.patch(`/api/${opts.paramPlural}/:id`, asyncHandler(controller.update))
  11. if (controller.delete) app.delete(`/api/${opts.paramPlural}/:id`, asyncHandler(controller.delete))
  12. if (controller.undelete) app.delete(`/api/${opts.paramPlural}/trash/:id`, asyncHandler(controller.undelete))
  13. }