From 0da4621999ee591aa05a422b1b5c6825291b09f5 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Sat, 12 Feb 2022 19:54:53 +0530 Subject: [PATCH] feat: map template message content --- src/Utils/messages.ts | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/Utils/messages.ts b/src/Utils/messages.ts index 7810943..02a19a6 100644 --- a/src/Utils/messages.ts +++ b/src/Utils/messages.ts @@ -465,24 +465,39 @@ export const getContentType = (content: WAProto.IMessage | undefined) => { * Eg. extracts the inner message from a disappearing message/view once message */ export const extractMessageContent = (content: WAMessageContent | undefined | null): WAMessageContent | undefined => { + const extractFromTemplateMessage = (msg: proto.IHydratedFourRowTemplate | proto.IButtonsMessage) => { + if(msg.imageMessage) { + return { imageMessage: msg.imageMessage } + } else if(msg.documentMessage) { + return { documentMessage: msg.documentMessage } + } else if(msg.videoMessage) { + return { videoMessage: msg.videoMessage } + } else if(msg.locationMessage) { + return { locationMessage: msg.locationMessage } + } else { + return { conversation: 'contentText' in msg ? msg.contentText : ('hydratedContentText' in msg ? msg.hydratedContentText : '') } + } + } + content = content?.ephemeralMessage?.message || content?.viewOnceMessage?.message || content || undefined if(content?.buttonsMessage) { - const { buttonsMessage } = content - if(buttonsMessage.imageMessage) { - return { imageMessage: buttonsMessage.imageMessage } - } else if(buttonsMessage.documentMessage) { - return { documentMessage: buttonsMessage.documentMessage } - } else if(buttonsMessage.videoMessage) { - return { videoMessage: buttonsMessage.videoMessage } - } else if(buttonsMessage.locationMessage) { - return { locationMessage: buttonsMessage.locationMessage } - } else { - return { conversation: buttonsMessage.contentText } - } + return extractFromTemplateMessage(content.buttonsMessage!) + } + + if(content?.templateMessage?.hydratedFourRowTemplate) { + return extractFromTemplateMessage(content?.templateMessage?.hydratedFourRowTemplate) + } + + if(content?.templateMessage?.hydratedTemplate) { + return extractFromTemplateMessage(content?.templateMessage?.hydratedTemplate) + } + + if(content?.templateMessage?.fourRowTemplate) { + return extractFromTemplateMessage(content?.templateMessage?.fourRowTemplate) } return content