diff options
| author | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-16 02:11:55 -0400 |
|---|---|---|
| committer | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-16 02:11:55 -0400 |
| commit | eb779beb83ed6e8d000fd0453c9ed5c404327ae4 (patch) | |
| tree | b12b2282169b9504833afdf5b33ed8eae90f5e10 /app/node_modules | |
| parent | a34851422589d233e64ccf8dd8403c04f2636883 (diff) | |
Take metadata from config and make synchronous
Diffstat (limited to 'app/node_modules')
| -rw-r--r-- | app/node_modules/okadminview/index.js | 96 | ||||
| -rw-r--r-- | app/node_modules/okview/index.js | 13 |
2 files changed, 45 insertions, 64 deletions
diff --git a/app/node_modules/okadminview/index.js b/app/node_modules/okadminview/index.js index 161a195..82f364d 100644 --- a/app/node_modules/okadminview/index.js +++ b/app/node_modules/okadminview/index.js @@ -36,7 +36,7 @@ function OKAdminView(options) { if (!options.templateProvider) throw new Error('No templateProvider provided to OKAdminView'); if (!options.meta) - throw new Error('No meta query provided to OKAdminView'); + throw new Error('No metadata provided to OKAdminView'); if (!options.errorHandler) throw new Error('No error handler provided to OKAdminView'); @@ -135,13 +135,11 @@ function OKAdminView(options) { if (!resource) { error(req, res, 404)(new Error('No such resource ' + type)); } else { - meta.get().then(function(metadata) { - var templateData = transformData(metadata, resource, {}); - view.renderResourceNew(req, res, assign(templateData, { - success: req.flash('success'), - errors: req.flash('errors'), - })); - }).fail(error(req, res, 500)); + var templateData = transformData(meta, resource, {}); + view.renderResourceNew(req, res, assign(templateData, { + success: req.flash('success'), + errors: req.flash('errors'), + })); } }); @@ -179,18 +177,16 @@ function OKAdminView(options) { if (!resource) { error(req, res, 400)(new Error('No such resource ' + type)); } else { - meta.get().then(function(metadata) { - try { - resource.assertValid(data); - resource.create(data).then(function(created) { - req.flash('success', {action: 'create'}); - res.redirect(303, resource.getID(data)); - }).fail(error(req, res, 500)); - } catch (errors) { - var templateData = transformData(metadata, resource, data); - view.renderResource(req, res, assign(templateData, {errors: errors})); - } - }).fail(error(req, res, 500));; + try { + resource.assertValid(data); + resource.create(data).then(function(created) { + req.flash('success', {action: 'create'}); + res.redirect(303, resource.getID(data)); + }).fail(error(req, res, 500)); + } catch (errors) { + var templateData = transformData(meta, resource, data); + view.renderResource(req, res, assign(templateData, {errors: errors})); + } } }); @@ -215,11 +211,7 @@ function OKAdminView(options) { error(req, res, 500)(new Error('Resource batch contains invalid JSON')); return; } - Q.all([ - meta.get(), - resource.updateBatch(ids, resourcesParsed), - ]).then(function(results) { - var metadata = results.shift(); + resource.updateBatch(ids, resourcesParsed).then(function(results) { req.flash('success', {action: 'batch_update'}); res.redirect(303, '../..'); }).fail(error(req, res, 500)); @@ -234,19 +226,16 @@ function OKAdminView(options) { if (!resource) { error(req, res, 400)(new Error('No such resource ' + type)); } else { - // TODO Prob should make metadata synchronous... - meta.get().then(function(metadata) { - try { - resource.assertValid(data); - resource.update(id, data).then(function(updated) { - req.flash('success', {action: 'update'}); - res.redirect(303, '../' + resource.getID(updated)); - }).fail(error(req, res, 500)); - } catch (errors) { - var templateData = transformData(metadata, resource, data); - view.renderResource(req, res, assign(templateData, {errors: errors})); - } - }).fail(error(req, res, 500)); + try { + resource.assertValid(data); + resource.update(id, data).then(function(updated) { + req.flash('success', {action: 'update'}); + res.redirect(303, '../' + resource.getID(updated)); + }).fail(error(req, res, 500)); + } catch (errors) { + var templateData = transformData(meta, resource, data); + view.renderResource(req, res, assign(templateData, {errors: errors})); + } } }); @@ -257,11 +246,9 @@ function OKAdminView(options) { if (!resource) { error(req, res, 500)(new Error('No such resource ' + type)); } else { - meta.get().then(function(metadata) { - resource.destroy(id).then(function() { - req.flash('success', {action: 'delete'}); - res.redirect(303, '../..'); - }).fail(error(req, res, 500)); + resource.destroy(id).then(function() { + req.flash('success', {action: 'delete'}); + res.redirect(303, '../..'); }).fail(error(req, res, 500)); } }); @@ -328,10 +315,9 @@ OKAdminView.prototype.renderResourceNew = function(req, res, data) { */ function fetchIndexTemplateData(meta, queries) { return Q.promise(function(resolve, reject) { - Q.all([meta.get()].concat(queries.map(function(query) { + Q.all(queries.map(function(query) { return query.get(); - }))).then(function(results) { - var meta = results.shift(); + })).then(function(results) { var resources = results.reduce(function(cache, result, i) { if (!result) return cache; @@ -376,16 +362,14 @@ function fetchIndexTemplateData(meta, queries) { function fetchResourceTemplateData(meta, query, fn) { fn = fn || function(m, r, d) { return {meta: m, resource: d}; }; return Q.promise(function(resolve, reject) { - meta.get().then(function(metadata) { - query.get().then(function(data) { - if (!data) { - reject(new Error('No resource data')); - } else { - var resource = query.resource; - resolve(fn(metadata, resource, data)); - } - }).fail(reject); - }).fail(reject) + query.get().then(function(data) { + if (!data) { + reject(new Error('No resource data')); + } else { + var resource = query.resource; + resolve(fn(meta, resource, data)); + } + }).fail(reject); }); } diff --git a/app/node_modules/okview/index.js b/app/node_modules/okview/index.js index 951261c..fba1c18 100644 --- a/app/node_modules/okview/index.js +++ b/app/node_modules/okview/index.js @@ -21,7 +21,7 @@ function OKView(options) { if (!options.template) throw new Error('No template provided to OKView.'); if (!options.meta) - throw new Error('No meta resource provided to OKView'); + throw new Error('No metadata provided to OKView'); if (!options.route) throw new Error('No route provided to OKView'); if (!options.errorHandler) @@ -124,12 +124,9 @@ function fetchTemplateData(meta, queries, id) { // resource and will resolve errors if no data is found var single = queries && queries.length === 1; return Q.promise(function(resolve, reject) { - return Q.all( - [meta.get()].concat(queries.map(function(query) { - return query.get(id); - }))) - .then(function(results) { - var metadata = results.shift(); + return Q.all(queries.map(function(query) { + return query.get(id); + })).then(function(results) { if (single && !results[0]) { reject(new Error('No resource found')); } else { @@ -164,7 +161,7 @@ function fetchTemplateData(meta, queries, id) { cache[type] = result; } return cache; - }, {meta: metadata}); + }, {meta: meta}); resolve(normalized); } |
