From 84fa704b25e12159b48d54a499c1e9e25b55cfc9 Mon Sep 17 00:00:00 2001 From: Baris Usakli Date: Fri, 15 Nov 2013 13:39:09 -0500 Subject: [PATCH] refactor abit adding error checking to missing parts --- src/posts.js | 17 ++++---- src/routes/debug.js | 98 ++++++++++++++++++++++++++++----------------- src/routes/user.js | 16 -------- src/topics.js | 44 +++++++++++--------- src/websockets.js | 2 +- 5 files changed, 96 insertions(+), 81 deletions(-) diff --git a/src/posts.js b/src/posts.js index 07cf4f8a93..c4d914e9ab 100644 --- a/src/posts.js +++ b/src/posts.js @@ -131,17 +131,18 @@ var RDB = require('./redis.js'), }); }; - // TODO: this function is never called except from some debug route. clean up? Posts.getPostData = function(pid, callback) { RDB.hgetall('post:' + pid, function(err, data) { - if (err === null) { - plugins.fireHook('filter:post.get', data, function(err, newData) { - if (!err) callback(newData); - else callback(data); - }); - } else { - winston.error(err); + if(err) { + return callback(err, null); } + + plugins.fireHook('filter:post.get', data, function(err, newData) { + if(err) { + return callback(err, null); + } + callback(null, newData); + }); }); } diff --git a/src/routes/debug.js b/src/routes/debug.js index 2d19bc11ea..6ee816e702 100644 --- a/src/routes/debug.js +++ b/src/routes/debug.js @@ -1,50 +1,76 @@ + +var user = require('./../user'), + categories = require('./../categories'), + topics = require('./../topics'), + posts = require('./../posts'); + + var DebugRoute = function(app) { - app.namespace('/debug', function() { - app.get('/cid/:cid', function (req, res) { - categories.getCategoryData(req.params.cid, function (err, data) { - if (data) { - res.send(data); - } else { - res.send(404, "Category doesn't exist!"); - } - }); - }); - app.get('/tid/:tid', function (req, res) { - topics.getTopicData(req.params.tid, function (data) { - if (data) { - res.send(data); - } else { - res.send(404, "Topic doesn't exist!"); - } - }); + app.namespace('/debug', function() { + + app.get('/uid/:uid', function (req, res) { + + if (!req.params.uid) + return res.redirect('/404'); + + user.getUserData(req.params.uid, function (err, data) { + if (data) { + res.send(data); + } else { + res.json(404, { + error: "User doesn't exist!" + }); + } }); + }); - app.get('/pid/:pid', function (req, res) { - posts.getPostData(req.params.pid, function (data) { - if (data) { - res.send(data); - } else { - res.send(404, "Post doesn't exist!"); - } - }); + + app.get('/cid/:cid', function (req, res) { + categories.getCategoryData(req.params.cid, function (err, data) { + if (data) { + res.send(data); + } else { + res.send(404, "Category doesn't exist!"); + } }); + }); - app.get('/prune', function(req, res) { - var Notifications = require('../notifications'); + app.get('/tid/:tid', function (req, res) { + topics.getTopicData(req.params.tid, function (err, data) { + if (data) { + res.send(data); + } else { + res.send(404, "Topic doesn't exist!"); + } + }); + }); - Notifications.prune(new Date(), function() { - console.log('done'); - }); - res.send(); + app.get('/pid/:pid', function (req, res) { + posts.getPostData(req.params.pid, function (err, data) { + if (data) { + res.send(data); + } else { + res.send(404, "Post doesn't exist!"); + } }); + }); - app.get('/uuidtest', function(req, res) { - var Utils = require('../../public/src/utils.js'); + app.get('/prune', function(req, res) { + var Notifications = require('../notifications'); - res.send(Utils.generateUUID()); + Notifications.prune(new Date(), function() { + console.log('done'); }); + res.send(); + }); + + app.get('/uuidtest', function(req, res) { + var Utils = require('../../public/src/utils.js'); + + res.send(Utils.generateUUID()); }); - }; + }); +}; module.exports = DebugRoute; \ No newline at end of file diff --git a/src/routes/user.js b/src/routes/user.js index b43d770f5c..8ee9015cd5 100644 --- a/src/routes/user.js +++ b/src/routes/user.js @@ -14,22 +14,6 @@ var user = require('./../user.js'), (function (User) { User.createRoutes = function (app) { - app.get('/uid/:uid', function (req, res) { - - if (!req.params.uid) - return res.redirect('/404'); - - user.getUserData(req.params.uid, function (err, data) { - if (data) { - res.send(data); - } else { - res.json(404, { - error: "User doesn't exist!" - }); - } - }); - }); - app.namespace('/users', function () { app.get('', function (req, res) { app.build_header({ diff --git a/src/topics.js b/src/topics.js index cc383493a9..2c070f2a7a 100644 --- a/src/topics.js +++ b/src/topics.js @@ -20,28 +20,36 @@ var RDB = require('./redis.js'), Topics.getTopicData = function(tid, callback) { RDB.hgetall('topic:' + tid, function(err, data) { - if (err === null) { - if(data) { - data.title = validator.sanitize(data.title).escape(); - if(data.timestamp) { - data.relativeTime = new Date(parseInt(data.timestamp, 10)).toISOString(); - } - } + if(err) { + return callback(err, null); + } - callback(data); - } else { - console.log(err); + if(data) { + data.title = validator.sanitize(data.title).escape(); + if(data.timestamp) { + data.relativeTime = new Date(parseInt(data.timestamp, 10)).toISOString(); + } } + + callback(null, data); }); } Topics.getTopicDataWithUser = function(tid, callback) { - Topics.getTopicData(tid, function(topic) { + Topics.getTopicData(tid, function(err, topic) { + if(err) { + return callback(err, null); + } + user.getUserFields(topic.uid, ['username', 'userslug', 'picture'] , function(err, userData) { + if(err) { + return callback(err, null); + } + topic.username = userData.username; topic.userslug = userData.userslug topic.picture = userData.picture; - callback(topic); + callback(null, topic); }); }); } @@ -331,7 +339,7 @@ var RDB = require('./redis.js'), } function loadTopic(tid, callback) { - Topics.getTopicData(tid, function(topicData) { + Topics.getTopicData(tid, function(err, topicData) { if (!topicData) { return callback(null); } @@ -381,9 +389,7 @@ var RDB = require('./redis.js'), Topics.increaseViewCount(tid); function getTopicData(next) { - Topics.getTopicData(tid, function(topicData) { - next(null, topicData); - }); + Topics.getTopicData(tid, next); } function getTopicPosts(next) { @@ -442,9 +448,7 @@ var RDB = require('./redis.js'), Topics.getTopicForCategoryView = function(tid, uid, callback) { function getTopicData(next) { - Topics.getTopicDataWithUser(tid, function(topic) { - next(null, topic); - }); + Topics.getTopicDataWithUser(tid, next); } function getReadStatus(next) { @@ -517,7 +521,7 @@ var RDB = require('./redis.js'), }); async.each(tids, function(tid, next) { - Topics.getTopicDataWithUser(tid, function(topicData) { + Topics.getTopicDataWithUser(tid, function(err, topicData) { topics.push(topicData); next(); }); diff --git a/src/websockets.js b/src/websockets.js index cb01f26d0e..e3db21d2ae 100644 --- a/src/websockets.js +++ b/src/websockets.js @@ -688,7 +688,7 @@ module.exports.init = function(io) { socket.on('api:composer.push', function(data) { if (uid > 0 || meta.config.allowGuestPosting === '1') { if (parseInt(data.tid) > 0) { - topics.getTopicData(data.tid, function(topicData) { + topics.getTopicData(data.tid, function(err, topicData) { if (data.body) topicData.body = data.body;