diff options
| author | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-03 13:43:30 -0400 |
|---|---|---|
| committer | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-06 15:27:52 -0400 |
| commit | 4a112b88f4f39dfe5ba8df77f12ed5b565665010 (patch) | |
| tree | 25fa99f3a964d2c8c12e1384bd5225e2847e5c78 /app/node_modules/okview/index.js | |
| parent | 0e968c54dbd30d0004009b623af901dcfb64cf3a (diff) | |
Factor out template data fetch into util function
Diffstat (limited to 'app/node_modules/okview/index.js')
| -rw-r--r-- | app/node_modules/okview/index.js | 33 |
1 files changed, 2 insertions, 31 deletions
diff --git a/app/node_modules/okview/index.js b/app/node_modules/okview/index.js index b2a72e8..fc92186 100644 --- a/app/node_modules/okview/index.js +++ b/app/node_modules/okview/index.js @@ -1,6 +1,4 @@ -var Q = require('q'); -var isarray = require('lodash.isarray'); -var pluralize = require('pluralize'); +var fetchTemplateData = require('okutil').fetchTemplateData; var OKResource = require('okresource'); // Routes for views over collections have a special pattern @@ -39,35 +37,8 @@ OKView.prototype.render = function(req, res, data) { }, errorHandler(req, res, data)); }; -/** - * Takes queries backing this view and transforms them - * into a promise for an object with all the queried data, - * suitable to pass to the template. - * - * Lil bit convoluted, sorry. - */ OKView.prototype.getTemplateData = function(options) { - var self = this; - var queries = this._queries; - return Q.promise(function(resolve, reject) { - return Q.all( - [self._meta.get()].concat(queries.map(function(query) { - return query.get(options); - }))) - .then(function(results) { - var meta = results.shift(); - var normalized = results.reduce(function(data, result, i) { - var type = queries[i].type; - if (isarray(result)) { - data[pluralize(type)] = result; - } else { - data[type] = result; - } - return data; - }, {meta: meta}); - resolve(normalized); - }, reject); - }); + return fetchTemplateData(this._meta, this._queries, options); }; /** |
