new filter hooks on favourite actions #2620

before a favourite action is made, fire a filter hook so plugins can
modify or cancel that action before it takes place.
v1.18.x
TheBronx 10 years ago
parent 03ae7db561
commit 6ccb35576c

@ -168,22 +168,40 @@ function favouriteCommand(socket, command, eventName, notification, data, callba
return callback(new Error('[[error:post-deleted]]'));
}
favourites[command](data.pid, socket.uid, function(err, result) {
/*
hooks:
filter.post.upvote
filter.post.downvote
filter.post.unvote
filter.post.favourite
filter.post.unfavourite
*/
plugins.fireHook('filter:post.' + command, data, function(err, filteredData) {
if (err) {
return callback(err);
}
socket.emit('posts.' + command, result);
executeFavouriteCommand(socket, command, eventName, notification, filteredData, callback);
});
});
}
if (result && eventName) {
websockets.in(data.room_id).emit('event:' + eventName, result);
}
function executeFavouriteCommand(socket, command, eventName, notification, data, callback) {
favourites[command](data.pid, socket.uid, function(err, result) {
if (err) {
return callback(err);
}
if (notification) {
SocketPosts.sendNotificationToPostOwner(data.pid, socket.uid, notification);
}
callback();
});
socket.emit('posts.' + command, result);
if (result && eventName) {
websockets.in(data.room_id).emit('event:' + eventName, result);
}
if (notification) {
SocketPosts.sendNotificationToPostOwner(data.pid, socket.uid, notification);
}
callback();
});
}

Loading…
Cancel
Save