diff --git a/packages/rocketchat-lib/server/models/Messages.coffee b/packages/rocketchat-lib/server/models/Messages.coffee index c7e7bf5ba00811df1d543f3ac89af416065e67b1..bd556564aac0415fc9c22ac960e0c554d52b0be4 100644 --- a/packages/rocketchat-lib/server/models/Messages.coffee +++ b/packages/rocketchat-lib/server/models/Messages.coffee @@ -8,6 +8,7 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base @tryEnsureIndex { 'rid': 1, 't': 1, 'u._id': 1 } @tryEnsureIndex { 'expireAt': 1 }, { expireAfterSeconds: 0 } @tryEnsureIndex { 'msg': 'text' } + @tryEnsureIndex { 'file._id': 1 }, { sparse: 1 } # FIND ONE @@ -328,3 +329,6 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base "u._id": userId return @remove query + + getMessageByFileId: (fileID) -> + return @findOne { 'file._id': fileID } diff --git a/server/methods/deleteFileMessage.js b/server/methods/deleteFileMessage.js new file mode 100644 index 0000000000000000000000000000000000000000..0fd4125b6753d0a0e4303f2f402017928bfbfbb0 --- /dev/null +++ b/server/methods/deleteFileMessage.js @@ -0,0 +1,5 @@ +Meteor.methods({ + deleteFileMessage: function(fileID) { + return Meteor.call('deleteMessage', RocketChat.models.Messages.getMessageByFileId(fileID)); + } +}); diff --git a/server/methods/deleteMessage.coffee b/server/methods/deleteMessage.coffee index d51985e786b930f5953bd9488f72375024805576..271e5d4fec9fed4522f695de41322169e6d70d8a 100644 --- a/server/methods/deleteMessage.coffee +++ b/server/methods/deleteMessage.coffee @@ -39,7 +39,3 @@ Meteor.methods RocketChat.models.Messages.setAsDeletedById originalMessage._id else RocketChat.Notifications.notifyRoom originalMessage.rid, 'deleteMessage', {_id: originalMessage._id} - - , - deleteFileMessage: (fileID) -> - Meteor.call 'deleteMessage', RocketChat.models.Messages.findOne { file: { _id: fileID } }