From 0aa83f1bb9b6d27121390565ae66ddf5eea038bd Mon Sep 17 00:00:00 2001 From: terakilobyte Date: Thu, 11 Jun 2015 15:33:38 -0400 Subject: [PATCH] Remove mongoose style lookup from fieldguide.js. Update user model. --- common/models/user.json | 17 ++++---- server/boot/fieldGuide.js | 81 +++++++++++++++++++-------------------- 2 files changed, 50 insertions(+), 48 deletions(-) diff --git a/common/models/user.json b/common/models/user.json index 2811cfce2d..8e6ca8c2ae 100644 --- a/common/models/user.json +++ b/common/models/user.json @@ -126,9 +126,8 @@ "type": "string" }, "sentSlackInvite": { - "type": { - "type": false - } + "type": "boolean", + "default": false }, "resetPasswordExpires": { "type": "string" @@ -145,10 +144,12 @@ "completedDate": "string", "solution": "string" } - ] + ], + "default": [] }, "uncompletedCoursewares": { - "type": "array" + "type": "array", + "default": [] }, "completedCoursewares": { "type": [ @@ -164,7 +165,8 @@ "githubLink": "string", "verified": "boolean" } - ] + ], + "default": [] }, "completedFieldGuides": { "type": [] @@ -217,7 +219,8 @@ "default": [] }, "uncompletedChallenges": { - "type": "array" + "type": "array", + "default": [] } }, "validations": [], diff --git a/server/boot/fieldGuide.js b/server/boot/fieldGuide.js index 3714847d72..c55067eda1 100644 --- a/server/boot/fieldGuide.js +++ b/server/boot/fieldGuide.js @@ -1,7 +1,7 @@ var R = require('ramda'), - // Rx = require('rx'), - // debug = require('debug')('freecc:fieldguides'), - utils = require('../utils'); +// Rx = require('rx'), +// debug = require('debug')('freecc:fieldguides'), + utils = require('../utils'); module.exports = function(app) { var router = app.loopback.Router(); @@ -48,7 +48,7 @@ module.exports = function(app) { } var fieldGuide = R.head(fieldGuideFromMongo); - fieldGuide.name.toLowerCase().replace(/\s/g, '-').replace(/\?/g, ''); + fieldGuide.name.toLowerCase().replace(/\s/g, '-').replace(/\?/g, ''); // if (fieldGuide.dashedName !== dashedNameFromQuery) { // return res.redirect('../field-guide/' + fieldGuide.dashedName); @@ -80,45 +80,44 @@ module.exports = function(app) { return res.redirect('/field-guide/how-do-i-use-this-guide'); } - var displayedFieldGuides = - FieldGuide.find({'id': req.user.uncompletedFieldGuides[0]}); + FieldGuide.find({'id': req.user.uncompletedFieldGuides[0]}, + function(err, fieldGuide) { - displayedFieldGuides.exec(function(err, fieldGuide) { - if (err) { return next(err); } - fieldGuide = fieldGuide.pop(); + if (err) { return next(err); } + fieldGuide = fieldGuide.pop(); - if (typeof fieldGuide === 'undefined') { - if (req.user.completedFieldGuides.length > 0) { - req.flash('success', { - msg: [ - "You've read all our current Field Guide entries. If you have ", - 'ideas for other Field Guide articles, please let us know on ', - "GitHub." - ].join('') - }); + if (typeof fieldGuide === 'undefined') { + if (req.user.completedFieldGuides.length > 0) { + req.flash('success', { + msg: [ + "You've read all our current Field Guide entries. If you have ", + 'ideas for other Field Guide articles, please let us know on ', + "GitHub." + ].join('') + }); + } + return res.redirect('../field-guide/how-do-i-use-this-guide'); } - return res.redirect('../field-guide/how-do-i-use-this-guide'); - } - return res.redirect('../field-guide/' + fieldGuide.dashedName); - }); - } - - function completedFieldGuide(req, res, next) { - var fieldGuideId = req.body.fieldGuideInfo.fieldGuideId; - - req.user.completedFieldGuides.push(fieldGuideId); - - var index = req.user.uncompletedFieldGuides.indexOf(fieldGuideId); - if (index > -1) { - req.user.progressTimestamps.push(Date.now()); - req.user.uncompletedFieldGuides.splice(index, 1); - } - - req.user.save(function (err) { - if (err) { - return next(err); - } - res.send(true); - }); + return res.redirect('../field-guide/' + fieldGuide.dashedName); + }); } }; + +function completedFieldGuide(req, res, next) { + var fieldGuideId = req.body.fieldGuideInfo.fieldGuideId; + + req.user.completedFieldGuides.push(fieldGuideId); + + var index = req.user.uncompletedFieldGuides.indexOf(fieldGuideId); + if (index > -1) { + req.user.progressTimestamps.push(Date.now()); + req.user.uncompletedFieldGuides.splice(index, 1); + } + + req.user.save(function (err) { + if (err) { + return next(err); + } + res.send(true); + }); +}