-
-
Save hussainb/89d0435f5bf6e7c83407 to your computer and use it in GitHub Desktop.
Revisions
-
mphasize created this gist
Mar 2, 2015 .There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,29 @@ /** * 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,19 @@ // 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(); } };