Update to support delete note

This commit is contained in:
Wu Cheng-Han
2016-10-10 21:04:24 +08:00
parent 68457ed3a2
commit 12d5ed43a7
5 changed files with 77 additions and 1 deletions

View File

@@ -0,0 +1,11 @@
'use strict';
module.exports = {
up: function (queryInterface, Sequelize) {
queryInterface.addColumn('Notes', 'deletedAt', Sequelize.DATE);
},
down: function (queryInterface, Sequelize) {
queryInterface.removeColumn('Notes', 'deletedAt', Sequelize.DATE);
}
};

View File

@@ -67,6 +67,7 @@ module.exports = function (sequelize, DataTypes) {
type: DataTypes.DATE
}
}, {
paranoid: true,
classMethods: {
associate: function (models) {
Note.belongsTo(models.User, {

View File

@@ -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');