diff --git a/apps/meteor/app/apps/server/bridges/messages.ts b/apps/meteor/app/apps/server/bridges/messages.ts index 4f905044b65cb..c28e01057c1fa 100644 --- a/apps/meteor/app/apps/server/bridges/messages.ts +++ b/apps/meteor/app/apps/server/bridges/messages.ts @@ -10,7 +10,8 @@ import { Messages, Users, Subscriptions } from '../../../models/server'; import { updateMessage } from '../../../lib/server/functions/updateMessage'; import { executeSendMessage } from '../../../lib/server/methods/sendMessage'; import notifications from '../../../notifications/server/lib/Notifications'; -import type { AppServerOrchestrator } from '../orchestrator'; +import { AppServerOrchestrator } from '../orchestrator'; +import { deleteMessage } from '../../../lib/server'; export class AppMessageBridge extends MessageBridge { // eslint-disable-next-line no-empty-function @@ -51,6 +52,21 @@ export class AppMessageBridge extends MessageBridge { updateMessage(msg, editor); } + protected async delete(messageId: string, appId: string): Promise { + this.orch.debugLog(`The App ${appId} is deleting a message with id: "${messageId}".`); + + const appUser = Users.findOneByAppId(appId, {}); + if (!appUser) { + throw new Error('Invalid app user, cannot delete message.'); + } + const message = Messages.findOneById(messageId); + if (!message) { + throw new Error('Invalid message, cannot delete message.'); + } + + await deleteMessage(message, appUser); + } + protected async notifyUser(user: IUser, message: IMessage, appId: string): Promise { this.orch.debugLog(`The App ${appId} is notifying a user.`); diff --git a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json index 4fb24dac3515f..5d709a1c00ddf 100644 --- a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json @@ -557,6 +557,7 @@ "Apps_Permissions_server-setting_write": "Modify settings in this server", "Apps_Permissions_room_read": "Access room information", "Apps_Permissions_room_write": "Create and modify rooms", + "Apps_Permissions_message_delete": "Delete messages", "Apps_Permissions_message_read": "Access messages", "Apps_Permissions_message_write": "Send and modify messages", "Apps_Permissions_livechat-status_read": "Access Livechat status information",