|
|
|
@ -3,8 +3,8 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base |
|
|
|
|
@_initModel 'message' |
|
|
|
|
|
|
|
|
|
@tryEnsureIndex { 'rid': 1, 'ts': 1 } |
|
|
|
|
@tryEnsureIndex { 'edit.at': 1 }, { sparse: 1 } |
|
|
|
|
@tryEnsureIndex { 'edit.by': 1 }, { sparse: 1 } |
|
|
|
|
@tryEnsureIndex { 'editedAt': 1 }, { sparse: 1 } |
|
|
|
|
@tryEnsureIndex { 'editedBy._id': 1 }, { sparse: 1 } |
|
|
|
|
@tryEnsureIndex { 'rid': 1, 't': 1, 'u._id': 1 } |
|
|
|
|
@tryEnsureIndex { 'expireAt': 1 }, { expireAfterSeconds: 0 } |
|
|
|
|
@tryEnsureIndex { 'msg': 'text' } |
|
|
|
@ -77,7 +77,7 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base |
|
|
|
|
ts: |
|
|
|
|
$gt: timestamp |
|
|
|
|
, |
|
|
|
|
'edit.at': |
|
|
|
|
'editedAt': |
|
|
|
|
$gt: timestamp |
|
|
|
|
] |
|
|
|
|
|
|
|
|
@ -94,12 +94,14 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base |
|
|
|
|
return @find query, options |
|
|
|
|
|
|
|
|
|
cloneAndSaveAsHistoryById: (_id) -> |
|
|
|
|
me = RocketChat.models.Users.findOneById Meteor.userId() |
|
|
|
|
record = @findOneById _id |
|
|
|
|
record._hidden = true |
|
|
|
|
record.parent = record._id |
|
|
|
|
record.edit = |
|
|
|
|
at: new Date() |
|
|
|
|
by: Meteor.userId() |
|
|
|
|
record.editedAt = new Date |
|
|
|
|
record.editedBy = |
|
|
|
|
_id: Meteor.userId() |
|
|
|
|
username: me.username |
|
|
|
|
delete record._id |
|
|
|
|
|
|
|
|
|
return @insert record |
|
|
|
@ -117,6 +119,7 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base |
|
|
|
|
return @update query, update |
|
|
|
|
|
|
|
|
|
setAsDeletedById: (_id) -> |
|
|
|
|
me = RocketChat.models.Users.findOneById Meteor.userId() |
|
|
|
|
query = |
|
|
|
|
_id: _id |
|
|
|
|
|
|
|
|
@ -124,8 +127,10 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base |
|
|
|
|
$set: |
|
|
|
|
msg: '' |
|
|
|
|
t: 'rm' |
|
|
|
|
'edit.at': new Date() |
|
|
|
|
'edit.by': Meteor.userId() |
|
|
|
|
editedAt: new Date() |
|
|
|
|
editedBy: |
|
|
|
|
_id: Meteor.userId() |
|
|
|
|
username: me.username |
|
|
|
|
|
|
|
|
|
return @update query, update |
|
|
|
|
|
|
|
|
@ -161,6 +166,16 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base |
|
|
|
|
|
|
|
|
|
return @update query, update, { multi: true } |
|
|
|
|
|
|
|
|
|
updateUsernameOfEditByUserId: (userId, username) -> |
|
|
|
|
query = |
|
|
|
|
'editedBy._id': userId |
|
|
|
|
|
|
|
|
|
update = |
|
|
|
|
$set: |
|
|
|
|
"editedBy.username": username |
|
|
|
|
|
|
|
|
|
return @update query, update, { multi: true } |
|
|
|
|
|
|
|
|
|
updateUsernameAndMessageOfMentionByIdAndOldUsername: (_id, oldUsername, newUsername, newMessage) -> |
|
|
|
|
query = |
|
|
|
|
_id: _id |
|
|
|
@ -188,6 +203,16 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base |
|
|
|
|
|
|
|
|
|
return @update query, update |
|
|
|
|
|
|
|
|
|
upgradeEtsToEditAt: -> |
|
|
|
|
query = |
|
|
|
|
ets: { $exists: 1 } |
|
|
|
|
|
|
|
|
|
update = |
|
|
|
|
$rename: |
|
|
|
|
"ets": "editedAt" |
|
|
|
|
|
|
|
|
|
return @update query, update, { multi: true } |
|
|
|
|
|
|
|
|
|
# INSERT |
|
|
|
|
createWithTypeRoomIdMessageAndUser: (type, roomId, message, user, extraData) -> |
|
|
|
|
record = |
|
|
|
|