Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
/**
* beforeBlueprint
*
* @module :: Policy
* @description :: Simple policy to enable hooks into the model which can act upon req, res objects.
* @docs :: http://sailsjs.org/#!documentation/policies
*
*/
var actionUtil = require( 'sails/lib/hooks/blueprints/actionUtil' );
capitaliseFirstLetter = function ( string ) {
return string.charAt( 0 ).toUpperCase() + string.slice( 1 );
};
module.exports = function ( req, res, next ) {
var Model = actionUtil.parseModel( req );
var blueprint = capitaliseFirstLetter( req.options.action ); // we actually enable this for all actions, not only blueprints
if ( typeof Model[ "controlBefore" + blueprint ] === "function" ) {
var result = Model[ "controlBefore" + blueprint ]( req, res, next );
//next();
} else {
sails.log.debug( 'Policy beforeBlueprint: Model "' + Model.identity + '" has no method controlBefore' + blueprint + '.' );
next();
}
};
// Model defintion api/models/user.js
module.exports = {
attributes: {
name: "string",
"posts": {
collection: "post",
via: "user"
}
},
// beforeFind hook to modify the request before it hits the find blueprint
// other hooks possible, with the naming schema of controlBefore*Blueprint
controlBeforeFind: function ( req, res, next ) {
// modify req.options.where OR req.body OR req.query as you need
next();
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.