Page MenuHomePhorge

D14539.1769076265.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D14539.1769076265.diff

diff --git a/lib/shared/dm-ops/dm-op-specs.js b/lib/shared/dm-ops/dm-op-specs.js
--- a/lib/shared/dm-ops/dm-op-specs.js
+++ b/lib/shared/dm-ops/dm-op-specs.js
@@ -13,6 +13,7 @@
import { editEntrySpec } from './edit-entry-spec.js';
import { joinThreadSpec } from './join-thread-spec.js';
import { leaveThreadSpec } from './leave-thread-spec.js';
+import { sendDeleteMessageSpec } from './send-delete-message-spec.js';
import { sendEditMessageSpec } from './send-edit-message-spec.js';
import { sendMultimediaMessageSpec } from './send-multimedia-message-spec.js';
import { sendReactionMessageSpec } from './send-reaction-message-spec.js';
@@ -40,4 +41,5 @@
[dmOperationTypes.DELETE_ENTRY]: deleteEntrySpec,
[dmOperationTypes.EDIT_ENTRY]: editEntrySpec,
[dmOperationTypes.UPDATE_RELATIONSHIP]: updateRelationshipSpec,
+ [dmOperationTypes.SEND_DELETE_MESSAGE]: sendDeleteMessageSpec,
});
diff --git a/lib/shared/dm-ops/send-delete-message-spec.js b/lib/shared/dm-ops/send-delete-message-spec.js
new file mode 100644
--- /dev/null
+++ b/lib/shared/dm-ops/send-delete-message-spec.js
@@ -0,0 +1,58 @@
+// @flow
+
+import type {
+ DMOperationSpec,
+ ProcessDMOperationUtilities,
+} from './dm-op-spec.js';
+import {
+ type DMSendDeleteMessageOperation,
+ dmSendDeleteMessageOperationValidator,
+} from '../../types/dm-ops.js';
+import { messageTypes } from '../../types/message-types-enum.js';
+
+const sendDeleteMessageSpec: DMOperationSpec<DMSendDeleteMessageOperation> =
+ Object.freeze({
+ processDMOperation: async (dmOperation: DMSendDeleteMessageOperation) => {
+ const { threadID, creatorID, time, targetMessageID, messageID } =
+ dmOperation;
+ const rawMessageInfo = {
+ type: messageTypes.DELETE_MESSAGE,
+ threadID,
+ creatorID,
+ time,
+ targetMessageID,
+ id: messageID,
+ };
+
+ return {
+ rawMessageInfos: [rawMessageInfo],
+ updateInfos: [],
+ blobOps: [],
+ notificationsCreationData: null,
+ };
+ },
+ canBeProcessed: async (
+ dmOperation: DMSendDeleteMessageOperation,
+ utilities: ProcessDMOperationUtilities,
+ ) => {
+ const targetMessage = await utilities.fetchMessage(
+ dmOperation.targetMessageID,
+ );
+ if (!targetMessage) {
+ return {
+ isProcessingPossible: false,
+ reason: {
+ type: 'missing_message',
+ messageID: dmOperation.targetMessageID,
+ },
+ };
+ }
+ return {
+ isProcessingPossible: true,
+ };
+ },
+ supportsAutoRetry: true,
+ operationValidator: dmSendDeleteMessageOperationValidator,
+ });
+
+export { sendDeleteMessageSpec };

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 22, 10:04 AM (13 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5971843
Default Alt Text
D14539.1769076265.diff (2 KB)

Event Timeline