diff --git a/lib/cartodb/api/user_limits_api.js b/lib/cartodb/api/user_limits_api.js index 3b7aaa70..06ab4ccf 100644 --- a/lib/cartodb/api/user_limits_api.js +++ b/lib/cartodb/api/user_limits_api.js @@ -93,9 +93,9 @@ UserLimitsApi.prototype.preprareRateLimit = function () { if (this.options.limits.rateLimitsEnabled) { this.metadataBackend.redisCmd( - RATE_LIMIT_REDIS_DB, - 'SCRIPT', - ['LOAD', getRateLimitLuaScript()], + RATE_LIMIT_REDIS_DB, + 'SCRIPT', + ['LOAD', getRateLimitLuaScript()], function (err, sha) { if (!err && sha) { self.rateLimits.sha = sha; @@ -117,21 +117,20 @@ UserLimitsApi.prototype.getRateLimit = function (user, endpointGroup, callback) ]; this.metadataBackend.redisCmd( - RATE_LIMIT_REDIS_DB, - this.rateLimits.redisCommand, - redisParams, + RATE_LIMIT_REDIS_DB, + this.rateLimits.redisCommand, + redisParams, function (err, rateLimits) { - if (err && err.name === 'ReplyError' && err.message === 'NOSCRIPT No matching script. Please use EVAL.') { - self.rateLimits.redisCommand = 'EVAL'; - return self.getRateLimit(user, endpointGroup, callback); + if (err) { + if (err.name === 'ReplyError' && err.message === 'NOSCRIPT No matching script. Please use EVAL.') { + self.rateLimits.redisCommand = 'EVAL'; + return self.getRateLimit(user, endpointGroup, callback); + } else { + callback(err); + } } - let rateLimit; - if (!err) { - rateLimit = getLowerRateLimit(rateLimits); - } - - callback(err, rateLimit); + callback(null, getLowerRateLimit(rateLimits)); } ); }; @@ -188,16 +187,15 @@ function getRateLimitLuaScript() { */ function getLowerRateLimit(rateLimits) { /*jshint maxcomplexity:10 */ - if (!rateLimits || !Array.isArray(rateLimits) || !rateLimits.length) { + if (!Array.isArray(rateLimits) || !rateLimits.length) { return; } - let minIndex = 0; + let minIndex; let minRemainingValue; - let currentIndex = 0; - for (let rateLimit of rateLimits) { + for (let currentIndex = 0; currentIndex < rateLimits.length; currentIndex++) { + const rateLimit = rateLimits[currentIndex]; if (!validateRatelimit(rateLimit)) { - currentIndex++; continue; } @@ -212,11 +210,9 @@ function getLowerRateLimit(rateLimits) { minIndex = currentIndex; minRemainingValue = remaining; } - - currentIndex++; } - if (validateRatelimit(rateLimits[minIndex])) { + if (rateLimits[minIndex]) { return rateLimits[minIndex]; } else { return;