-
-
Save hussainb/89d0435f5bf6e7c83407 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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(); | |
} | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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