Update to support delete note
This commit is contained in:
11
lib/migrations/20161009040430-support-delete-note.js
Normal file
11
lib/migrations/20161009040430-support-delete-note.js
Normal 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);
|
||||
}
|
||||
};
|
||||
@@ -67,6 +67,7 @@ module.exports = function (sequelize, DataTypes) {
|
||||
type: DataTypes.DATE
|
||||
}
|
||||
}, {
|
||||
paranoid: true,
|
||||
classMethods: {
|
||||
associate: function (models) {
|
||||
Note.belongsTo(models.User, {
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user