From 517c37f633828068779f5542d7ae4a841afecc98 Mon Sep 17 00:00:00 2001 From: terakilobyte Date: Tue, 5 May 2015 21:13:46 -0400 Subject: [PATCH] More fixes to streak calculation --- controllers/user.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/controllers/user.js b/controllers/user.js index 250e30b1b5..6f449cad6c 100644 --- a/controllers/user.js +++ b/controllers/user.js @@ -285,6 +285,7 @@ exports.returnUser = function(req, res, next) { var tmpLongest = 1; var timeKeys = R.keys(timeObject); + user.longestStreak = 0; for (var i = 1; i <= timeKeys.length; i++) { if (moment(timeKeys[i - 1]).add(1, 'd').toString() === moment(timeKeys[i]).toString()) { @@ -298,18 +299,28 @@ exports.returnUser = function(req, res, next) { } timeKeys = timeKeys.reverse(); - var today = moment(Date.now()), currStreak = 1; - if (moment(timeKeys[0]).add(1, 'd').toString === today.toString()) { - for (var i = 2; i <= timeKeys.length; i++) { - if (moment(timeKeys[i - 1]).add(1, 'd').toString() - === moment(timeKeys[i]).toString()) { - currStreak++; + tmpLongest = 1; + + var today = moment(Date.now()).format('YYYY-MM-DD'); + + if (moment(today).toString() === moment(timeKeys[0]).toString() || + moment(today).subtract(1, 'd').toString() === + moment(timeKeys[0]).toString()) { + for (var i = 1; i <= timeKeys.length; i++) { + if (moment(timeKeys[i - 1]).subtract(1, 'd').toString() + === moment(timeKeys[i]).toString()) { + debug(timeKeys[i - 1], timeKeys[i]); + tmpLongest++; + if (tmpLongest > user.currentStreak) { + user.currentStreak = tmpLongest; + } } else { break; } } + } else { + user.currentStreak = 1; } - user.currentStreak = currStreak; user.save(function(err) { if (err) {