baucis-decorator-clone
Adds a clone method to baucis
resources.
Install
npm install baucis-decorators baucis-decorator-clone --save
Usage
This is a WIP (currently untested), so use at your own discretion. Just add the decorator and it might work. It adds a clone
endpoint so that you can POST something like {"id": "123}
or {"name": "timbur"}
to /api/users/clone
and should return a new resource based on the first match.
Example
controllers/User.js
var baucis = require('baucis');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var extend = require('deep-extend');
var ResourceProps = require('../props/Resource.js');
var ResourceController = require('../controllers/Resource.js');
var UserProps = extend({}, ResourceProps);
UserProps.name = {
type: String
};
var UserSchema = new Schema(UserProps);
var UserModel = mongoose.model('User', UserSchema);
var UserController = baucis.rest('User');
var decorators = require('baucis-decorators');
// decorate controller
decorators.add.call(UserController, [
'baucis-decorator-clone',
ResourceController // `UserController` will inherit all of `ResourceController`'s decorators
]);
/**
* Expose controller.
*/
module.exports = UserController;