[FIX] Prevent error on trying insert message with duplicated id (#14945)

pull/14964/head
Marcos Spessatto Defendi 7 years ago committed by Diego Sampaio
parent 7762aaa267
commit d0763c6625
  1. 6
      app/lib/client/methods/sendMessage.js
  2. 4
      app/lib/server/functions/sendMessage.js
  3. 1
      packages/rocketchat-i18n/i18n/en.i18n.json

@ -1,17 +1,23 @@
import { Meteor } from 'meteor/meteor';
import { TimeSync } from 'meteor/mizzao:timesync';
import s from 'underscore.string';
import toastr from 'toastr';
import { ChatMessage } from '../../../models';
import { settings } from '../../../settings';
import { callbacks } from '../../../callbacks';
import { promises } from '../../../promises/client';
import { t } from '../../../utils/client';
Meteor.methods({
sendMessage(message) {
if (!Meteor.userId() || s.trim(message.msg) === '') {
return false;
}
const messageAlreadyExists = message._id && ChatMessage.findOne({ _id: message._id });
if (messageAlreadyExists) {
return toastr.error(t('Message_Already_Sent'));
}
const user = Meteor.user();
message.ts = isNaN(TimeSync.serverOffset()) ? new Date() : new Date(Date.now() + TimeSync.serverOffset());
message.u = {

@ -198,6 +198,10 @@ export const sendMessage = function(user, message, room, upsert = false) {
}, message);
message._id = _id;
} else {
const messageAlreadyExists = message._id && Messages.findOneById(message._id, { fields: { _id: 1 } });
if (messageAlreadyExists) {
return;
}
message._id = Messages.insert(message);
}

@ -2010,6 +2010,7 @@
"Message_AllowSnippeting": "Allow Message Snippeting",
"Message_AllowStarring": "Allow Message Starring",
"Message_AllowUnrecognizedSlashCommand": "Allow Unrecognized Slash Commands",
"Message_Already_Sent": "This message has already been sent and is being processed by the server",
"Message_AlwaysSearchRegExp": "Always Search Using RegExp",
"Message_AlwaysSearchRegExp_Description": "We recommend to set `True` if your language is not supported on <a target=\"_blank\" href=\"https://docs.mongodb.org/manual/reference/text-search-languages/#text-search-languages\">MongoDB text search</a>.",
"Message_Attachments": "Message Attachments",

Loading…
Cancel
Save