diff --git a/lib/shared/dm-ops/send-text-message-spec.js b/lib/shared/dm-ops/send-text-message-spec.js --- a/lib/shared/dm-ops/send-text-message-spec.js +++ b/lib/shared/dm-ops/send-text-message-spec.js @@ -1,14 +1,40 @@ // @flow +import uuid from 'uuid'; + import type { DMOperationSpec } from './dm-op-spec.js'; import type { DMSendTextMessageOperation } from '../../types/dm-ops.js'; +import { messageTypes } from '../../types/message-types-enum.js'; +import { updateTypes } from '../../types/update-types-enum.js'; +import type { ClientUpdateInfo } from '../../types/update-types.js'; export const sendTextMessageSpec: DMOperationSpec = Object.freeze({ - processDMOperation: async () => { + processDMOperation: async ( + dmOperation: DMSendTextMessageOperation, + viewerID: string, + ) => { + const { threadID, creatorID, time, text } = dmOperation; + const textMessage = { + type: messageTypes.TEXT, + threadID, + creatorID, + time, + text, + }; + const updateInfos: Array = []; + if (creatorID !== viewerID) { + updateInfos.push({ + type: updateTypes.UPDATE_THREAD_READ_STATUS, + id: uuid.v4(), + time, + threadID, + unread: true, + }); + } return { - rawMessageInfos: [], - updateInfos: [], + rawMessageInfos: [textMessage], + updateInfos, }; }, });