summaryrefslogtreecommitdiff
path: root/lib/realtime.js
diff options
context:
space:
mode:
authorWu Cheng-Han2016-10-10 21:04:24 +0800
committerWu Cheng-Han2016-10-10 21:04:24 +0800
commit12d5ed43a7376e0ca361160698f07066218d6ed2 (patch)
tree697572ef13990565e5a44a66615540a40ef5def7 /lib/realtime.js
parent68457ed3a26012e9e72e7ca95bfd7b9c101cdd8b (diff)
Update to support delete note
Diffstat (limited to '')
-rw-r--r--lib/realtime.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/realtime.js b/lib/realtime.js
index c6c9ffeb..0fcd2eaa 100644
--- a/lib/realtime.js
+++ b/lib/realtime.js
@@ -796,6 +796,35 @@ function connection(socket) {
}
});
+ // delete a note
+ socket.on('delete', function () {
+ //need login to do more actions
+ if (socket.request.user && socket.request.user.logged_in) {
+ var noteId = socket.noteId;
+ if (!noteId || !notes[noteId]) return;
+ var note = notes[noteId];
+ //Only owner can delete note
+ if (note.owner && note.owner == socket.request.user.id) {
+ models.Note.destroy({
+ where: {
+ id: noteId
+ }
+ }).then(function (count) {
+ if (!count) return;
+ for (var i = 0, l = note.socks.length; i < l; i++) {
+ var sock = note.socks[i];
+ if (typeof sock !== 'undefined' && sock) {
+ sock.emit('delete');
+ return sock.disconnect(true);
+ }
+ }
+ }).catch(function (err) {
+ return logger.error('delete note failed: ' + err);
+ });
+ }
+ }
+ });
+
//reveiced when user logout or changed
socket.on('user changed', function () {
logger.info('user changed');