1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | 1× 1× 1× 1× 1× 1× 141× 1× 47× 1× 26× 26× 30× 26× 1× 4× 4× 4× 4× 1× 9× 9× 9× 9× 9× 9× 9× 1× 13× 13× 13× 13× 13× 1× 1× 63× 1× 11× | 'use strict'; var validator = require('validator'); var db = require('../database'); var categories = require('../categories'); var utils = require('../../public/src/utils'); module.exports = function(Topics) { Topics.getTopicField = function(tid, field, callback) { db.getObjectField('topic:' + tid, field, callback); }; Topics.getTopicFields = function(tid, fields, callback) { db.getObjectFields('topic:' + tid, fields, callback); }; Topics.getTopicsFields = function(tids, fields, callback) { Iif (!Array.isArray(tids) || !tids.length) { return callback(null, []); } var keys = tids.map(function(tid) { return 'topic:' + tid; }); db.getObjectsFields(keys, fields, callback); }; Topics.getTopicData = function(tid, callback) { db.getObject('topic:' + tid, function(err, topic) { Iif (err || !topic) { return callback(err); } modifyTopic(topic); callback(null, topic); }); }; Topics.getTopicsData = function(tids, callback) { var keys = []; for (var i=0; i<tids.length; ++i) { keys.push('topic:' + tids[i]); } db.getObjects(keys, function(err, topics) { Iif (err) { return callback(err); } topics.forEach(modifyTopic); callback(null, topics); }); }; function modifyTopic(topic) { Iif (!topic) { return; } topic.titleRaw = topic.title; topic.title = validator.escape(String(topic.title)); topic.timestampISO = utils.toISOString(topic.timestamp); topic.lastposttimeISO = utils.toISOString(topic.lastposttime); } Topics.getCategoryData = function(tid, callback) { Topics.getTopicField(tid, 'cid', function(err, cid) { if (err) { return callback(err); } categories.getCategoryData(cid, callback); }); }; Topics.setTopicField = function(tid, field, value, callback) { db.setObjectField('topic:' + tid, field, value, callback); }; Topics.deleteTopicField = function(tid, field, callback) { db.deleteObjectField('topic:' + tid, field, callback); }; }; |