asbestos

1.0.1 • Public • Published

asbestos

Generate hapi CRUD handler functions from a model constructor function

use

 
var route = {
  method: "POST",
  path: "/models",
  handler: handlers.create
}
 
// model prototype
var model = {
 
  // model must expose create method
  create: function (obj, cb) {
 
    //... do some db stuff
    return cb("created");
  },
 
  // model must expose findOne method
  findOne: function (criteria, cb) {
 
    //... do some db stuff
    return cb("found");
  },
 
  // model must expose update method
  update: function (criteria, changes, cb) {
 
    //... do some db stuff
    return cb("updated");
  },
 
  // model must expose delete method
  del: function (criteria, cb) {
 
    //... do some db stuff
    return cb("deleted");
  }
 
  // model must expose search method
  find: function (criteria, cb) {
 
    //... do some db stuff
    return cb("deleted");
  }
}
 
var handlers = require("asbestos")(model);
 

api

asbestos exposes a single function that returns on object with 5 methods:

  1. .create
  2. .find
  3. .findOne
  4. .update
  5. .del

createHandlers(obj)

params

obj: an object with create, find, findOne, update, and del methods.

returns

An object with 5 methods:

.create(req, res): a hapi handler function. It passes req.payload to the constructor's create method. It returns the object just created on success.

.find(req, res): a hapi handler function. It passes req.query to the constructor's find method. It returns the matched documents on success. It returns an empty array if not found.

.findOne(req, res): a hapi handler function. It passes req.params.id to the constructor's findOne method. It returns the matched document on success. It returns an empty object and a 404 if not found.

.update(req, res): a hapi handler function. It passes req.params.id and req.payload to the constructor's update method. It returns the updated document on success. It returns an empty object and a 404 if not found.

.del(req, res): a hapi handler function. It passes req.params.id to the constructor's delete method. It returns the deleted document on success. It returns an empty object and a 404 if not found.

license

MIT

Dependencies (6)

Dev Dependencies (8)

Package Sidebar

Install

npm i asbestos

Weekly Downloads

3

Version

1.0.1

License

MIT

Last publish

Collaborators

  • filwisher
  • bes