From b7fd4c22d4886409ebba2b3cb72a30721a9b3130 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 20 Sep 2014 18:51:32 -0400 Subject: [PATCH] removed checkPostIndex middleware 1 less call to get topic post count --- src/controllers/topics.js | 14 +++++++++++++- src/middleware/middleware.js | 19 ------------------- src/routes/index.js | 4 ++-- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 5bae5b3e42..4d94db705d 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -36,6 +36,19 @@ topicsController.get = function(req, res, next) { }, next); }, function (results, next) { + + var postCount = parseInt(results.postCount, 10) + 1; + if (utils.isNumber(req.params.post_index)) { + var url = ''; + if (req.params.post_index > postCount) { + url = '/topic/' + req.params.topic_id + '/' + req.params.slug + '/' + postCount; + return res.locals.isAPI ? res.json(302, url) : res.redirect(url); + } else if (req.params.post_index < 1) { + url = '/topic/' + req.params.topic_id + '/' + req.params.slug; + return res.locals.isAPI ? res.json(302, url) : res.redirect(url); + } + } + userPrivileges = results.privileges; if (userPrivileges.disabled) { @@ -47,7 +60,6 @@ topicsController.get = function(req, res, next) { } var settings = results.settings; - var postCount = parseInt(results.postCount, 10) + 1; var set = 'tid:' + tid + ':posts', reverse = false; diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index 7ebd9d83d1..555d5f8573 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -125,25 +125,6 @@ middleware.addSlug = function(req, res, next) { next(); }; -middleware.checkPostIndex = function(req, res, next) { - topics.getPostCount(req.params.topic_id, function(err, postCount) { - if (err) { - return next(err); - } - var postIndex = parseInt(req.params.post_index, 10); - postCount = parseInt(postCount, 10) + 1; - var url = ''; - if (postIndex > postCount) { - url = '/topic/' + req.params.topic_id + '/' + req.params.slug + '/' + postCount; - return res.locals.isAPI ? res.json(302, url) : res.redirect(url); - } else if (postIndex < 1) { - url = '/topic/' + req.params.topic_id + '/' + req.params.slug; - return res.locals.isAPI ? res.json(302, url) : res.redirect(url); - } - next(); - }); -}; - middleware.checkTopicIndex = function(req, res, next) { db.sortedSetCard('categories:' + req.params.category_id + ':tid', function(err, topicCount) { if (err) { diff --git a/src/routes/index.js b/src/routes/index.js index da96a2757d..642b8c1b9d 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -54,8 +54,8 @@ function staticRoutes(app, middleware, controllers) { function topicRoutes(app, middleware, controllers) { app.get('/api/topic/teaser/:topic_id', controllers.topics.teaser); - app.get('/topic/:topic_id/:slug/:post_index?', middleware.applyCSRF, middleware.buildHeader, middleware.checkPostIndex, controllers.topics.get); - app.get('/api/topic/:topic_id/:slug/:post_index?', middleware.applyCSRF, middleware.checkPostIndex, controllers.topics.get); + app.get('/topic/:topic_id/:slug/:post_index?', middleware.applyCSRF, middleware.buildHeader, controllers.topics.get); + app.get('/api/topic/:topic_id/:slug/:post_index?', middleware.applyCSRF, controllers.topics.get); app.get('/topic/:topic_id/:slug?', middleware.applyCSRF, middleware.buildHeader, middleware.addSlug, controllers.topics.get); app.get('/api/topic/:topic_id/:slug?', middleware.applyCSRF, middleware.addSlug, controllers.topics.get);