summaryrefslogtreecommitdiff
path: root/app/node_modules/okview/index.js
diff options
context:
space:
mode:
authorSean Fridman <fridman@mail.sfsu.edu>2015-04-03 13:43:30 -0400
committerSean Fridman <fridman@mail.sfsu.edu>2015-04-06 15:27:52 -0400
commit4a112b88f4f39dfe5ba8df77f12ed5b565665010 (patch)
tree25fa99f3a964d2c8c12e1384bd5225e2847e5c78 /app/node_modules/okview/index.js
parent0e968c54dbd30d0004009b623af901dcfb64cf3a (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.js33
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);
};
/**