mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-27 17:16:14 +01:00
favourite changes
favourites.js no longer makes socket calls, moved that code into socket.io/posts.js. it also makes a single socket call when you downvote a post that you previously upvoted.
This commit is contained in:
@@ -11,7 +11,7 @@ var async = require('async'),
|
||||
notifications = require('../notifications'),
|
||||
groups = require('../groups'),
|
||||
user = require('../user'),
|
||||
index = require('./index'),
|
||||
websockets = require('./index'),
|
||||
|
||||
SocketPosts = {};
|
||||
|
||||
@@ -40,38 +40,50 @@ SocketPosts.reply = function(socket, data, callback) {
|
||||
posts: [postData]
|
||||
};
|
||||
|
||||
index.server.sockets.emit('event:new_post', socketData);
|
||||
websockets.server.sockets.emit('event:new_post', socketData);
|
||||
|
||||
callback();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
SocketPosts.upvote = function(socket, data) {
|
||||
favouriteCommand('upvote', socket, data);
|
||||
SocketPosts.upvote = function(socket, data, callback) {
|
||||
favouriteCommand('upvote', 'voted', socket, data, callback);
|
||||
sendNotificationToPostOwner(data, socket.uid, 'has upvoted your post');
|
||||
};
|
||||
|
||||
SocketPosts.downvote = function(socket, data) {
|
||||
favouriteCommand('downvote', socket, data);
|
||||
SocketPosts.downvote = function(socket, data, callback) {
|
||||
favouriteCommand('downvote', 'voted', socket, data, callback);
|
||||
};
|
||||
|
||||
SocketPosts.unvote = function(socket, data) {
|
||||
favouriteCommand('unvote', socket, data);
|
||||
SocketPosts.unvote = function(socket, data, callback) {
|
||||
favouriteCommand('unvote', 'voted', socket, data, callback);
|
||||
};
|
||||
|
||||
SocketPosts.favourite = function(socket, data) {
|
||||
favouriteCommand('favourite', socket, data);
|
||||
SocketPosts.favourite = function(socket, data, callback) {
|
||||
favouriteCommand('favourite', 'favourited', socket, data, callback);
|
||||
sendNotificationToPostOwner(data, socket.uid, 'has favourited your post');
|
||||
};
|
||||
|
||||
SocketPosts.unfavourite = function(socket, data) {
|
||||
favouriteCommand('unfavourite', socket, data);
|
||||
SocketPosts.unfavourite = function(socket, data, callback) {
|
||||
favouriteCommand('unfavourite', 'favourited', socket, data, callback);
|
||||
};
|
||||
|
||||
function favouriteCommand(command, socket, data) {
|
||||
function favouriteCommand(command, eventName, socket, data, callback) {
|
||||
|
||||
if(data && data.pid && data.room_id) {
|
||||
favourites[command](data.pid, data.room_id, socket.uid, socket);
|
||||
favourites[command](data.pid, socket.uid, function(err, result) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
socket.emit('posts.' + command, data.pid);
|
||||
|
||||
if(data.room_id && result && eventName) {
|
||||
websockets.in(data.room_id).emit('event:' + eventName, result);
|
||||
}
|
||||
callback();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,7 +152,7 @@ SocketPosts.edit = function(socket, data, callback) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
index.server.sockets.in('topic_' + results.topic.tid).emit('event:post_edited', {
|
||||
websockets.server.sockets.in('topic_' + results.topic.tid).emit('event:post_edited', {
|
||||
pid: data.pid,
|
||||
title: results.topic.title,
|
||||
isMainPost: results.topic.isMainPost,
|
||||
@@ -172,7 +184,7 @@ function deleteOrRestore(command, socket, data, callback) {
|
||||
module.parent.exports.emitTopicPostStats();
|
||||
|
||||
var eventName = command === 'restore' ? 'event:post_restored' : 'event:post_deleted';
|
||||
index.server.sockets.in('topic_' + data.tid).emit(eventName, {
|
||||
websockets.server.sockets.in('topic_' + data.tid).emit(eventName, {
|
||||
pid: data.pid
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user