From 5f6177378f72658c036e427fd9c747ae9372dd16 Mon Sep 17 00:00:00 2001 From: terakilobyte Date: Fri, 24 Apr 2015 13:15:15 -0400 Subject: [PATCH] Clean up more linting errors and split out returns from Mongo. --- controllers/bonfire.js | 14 +++++++------- controllers/courseware.js | 16 ++++++++-------- controllers/user.js | 17 +++++++++++------ 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/controllers/bonfire.js b/controllers/bonfire.js index dbe60a0da0..88678099e1 100644 --- a/controllers/bonfire.js +++ b/controllers/bonfire.js @@ -63,12 +63,12 @@ exports.returnNextBonfire = function(req, res, next) { var uncompletedBonfires = req.user.uncompletedBonfires; var displayedBonfires = Bonfire.find({'_id': uncompletedBonfires[0]}); - displayedBonfires.exec(function(err, bonfire) { + displayedBonfires.exec(function(err, bonfireFromMongo) { if (err) { return next(err); } - bonfire = bonfire.pop(); - if (bonfire === undefined) { + var bonfire = bonfireFromMongo.pop(); + if (typeof bonfire === 'undefined') { req.flash('errors', { msg: "It looks like you've completed all the bonfires we have available. Good job!" }); @@ -84,13 +84,13 @@ exports.returnIndividualBonfire = function(req, res, next) { var bonfireName = dashedName.replace(/\-/g, ' '); - Bonfire.find({'name': new RegExp(bonfireName, 'i')}, function(err, bonfire) { + Bonfire.find({'name': new RegExp(bonfireName, 'i')}, function(err, bonfireFromMongo) { if (err) { next(err); } - if (bonfire.length < 1) { + if (bonfireFromMongo.length < 1) { req.flash('errors', { msg: "404: We couldn't find a bonfire with that name. Please double check the name." }); @@ -98,9 +98,9 @@ exports.returnIndividualBonfire = function(req, res, next) { return res.redirect('/bonfires'); } - bonfire = bonfire.pop(); + var bonfire = bonfireFromMongo.pop(); var dashedNameFull = bonfire.name.toLowerCase().replace(/\s/g, '-'); - if (dashedNameFull != dashedName) { + if (dashedNameFull !== dashedName) { return res.redirect('../bonfires/' + dashedNameFull); } res.render('bonfire/show', { diff --git a/controllers/courseware.js b/controllers/courseware.js index a7d2b4af0c..3feb22f3d4 100644 --- a/controllers/courseware.js +++ b/controllers/courseware.js @@ -50,14 +50,14 @@ exports.returnNextCourseware = function(req, res, next) { } courseware = courseware.pop(); - if (courseware === undefined) { + if (typeof courseware === 'undefined') { req.flash('errors', { msg: "It looks like you've completed all the courses we have " + "available. Good job!" }); return res.redirect('../challenges/learn-how-free-code-camp-works'); } - nameString = courseware.name.toLowerCase().replace(/\s/g, '-'); + var nameString = courseware.name.toLowerCase().replace(/\s/g, '-'); return res.redirect('../challenges/' + nameString); }); }; @@ -68,23 +68,23 @@ exports.returnIndividualCourseware = function(req, res, next) { var coursewareName = dashedName.replace(/\-/g, ' '); Courseware.find({'name': new RegExp(coursewareName, 'i')}, - function(err, courseware) { + function(err, coursewareFromMongo) { if (err) { next(err); } // Handle not found - if (courseware.length < 1) { + if (coursewareFromMongo.length < 1) { req.flash('errors', { msg: "404: We couldn't find a challenge with that name. " + "Please double check the name." }); return res.redirect('/challenges'); } - courseware = courseware.pop(); + var courseware = coursewareFromMongo.pop(); // Redirect to full name if the user only entered a partial var dashedNameFull = courseware.name.toLowerCase().replace(/\s/g, '-'); - if (dashedNameFull != dashedName) { + if (dashedNameFull !== dashedName) { return res.redirect('../challenges/' + dashedNameFull); } @@ -292,7 +292,7 @@ exports.completedZiplineOrBasejump = function (req, res, next) { if (isCompletedWith) { var paired = User.find({'profile.username': isCompletedWith.toLowerCase()}).limit(1); - paired.exec(function (err, pairedWith) { + paired.exec(function (err, pairedWithFromMongo) { if (err) { return next(err); } else { @@ -301,7 +301,7 @@ exports.completedZiplineOrBasejump = function (req, res, next) { req.user.progressTimestamps.push(Date.now() || 0); req.user.uncompletedCoursewares.splice(index, 1); } - pairedWith = pairedWith.pop(); + var pairedWith = pairedWithFromMongo.pop(); req.user.completedCoursewares.push({ _id: coursewareHash, diff --git a/controllers/user.js b/controllers/user.js index 034716ddcb..c00a0a1f6d 100644 --- a/controllers/user.js +++ b/controllers/user.js @@ -253,7 +253,7 @@ exports.checkExistingUsername = function(req, res, next) { exports.checkUniqueEmail = function(req, res, next) { User.count({'email': decodeURIComponent(req.params.email).toLowerCase()}, function (err, data) { if (err) { return next(err); } - if (data == 1) { + if (data === 1) { return res.send(true); } else { return res.send(false); @@ -271,7 +271,7 @@ exports.returnUser = function(req, res, next) { User.find({'profile.username': req.params.username.toLowerCase()}, function(err, user) { if (err) { debug('Username err: ', err); next(err); } if (user[0]) { - var user = user[0]; + user = user[0]; user.progressTimestamps = user.progressTimestamps.sort(function(a, b) { return a - b; @@ -284,6 +284,7 @@ exports.returnUser = function(req, res, next) { var tmpLongest = 1; var timeKeys = R.keys(timeObject); + for (var i = 1; i <= timeKeys.length; i++) { if (moment(timeKeys[i - 1]).add(1, 'd').toString() === moment(timeKeys[i]).toString()) { @@ -305,13 +306,17 @@ exports.returnUser = function(req, res, next) { var data = {}; var progressTimestamps = user.progressTimestamps; - for (var i = 0; i < progressTimestamps.length; i++) { - data[(progressTimestamps[i] / 1000).toString()] = 1; - } + progressTimestamps.forEach(function(timeStamp) { + data[(timeStamp / 1000)] = 1; + }); + + //for (var i = 0; i < progressTimestamps.length; i++) { + // data[(progressTimestamps[i] / 1000).toString()] = 1; + //} user.currentStreak = user.currentStreak || 1; user.longestStreak = user.longestStreak || 1; - challenges = user.completedCoursewares.filter(function ( obj ) { + var challenges = user.completedCoursewares.filter(function ( obj ) { return !!obj.solution; }); res.render('account/show', {