all files / src/socket.io/topics/ tags.js

30% Statements 6/20
0% Branches 0/10
16.67% Functions 1/6
30% Lines 6/20
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                                                             
'use strict';
 
var topics = require('../../topics');
var utils = require('../../../public/src/utils');
 
module.exports = function(SocketTopics) {
	SocketTopics.searchTags = function(socket, data, callback) {
		topics.searchTags(data, callback);
	};
 
	SocketTopics.searchAndLoadTags = function(socket, data, callback) {
		if (!data) {
			return callback(new Error('[[error:invalid-data]]'));
		}
		topics.searchAndLoadTags(data, callback);
	};
 
	SocketTopics.loadMoreTags = function(socket, data, callback) {
		if (!data || !utils.isNumber(data.after)) {
			return callback(new Error('[[error:invalid-data]]'));
		}
 
		var start = parseInt(data.after, 10);
		var stop = start + 99;
 
		topics.getTags(start, stop, function(err, tags) {
			if (err) {
				return callback(err);
			}
			tags = tags.filter(function(tag) {
				return tag && tag.score > 0;
			});
			callback(null, {tags: tags, nextStart: stop + 1});
		});
	};
};