Skip to content

Commit 7cb48ed

Browse files
committed
sent message erro when not decrypt de message
1 parent 7d6ef77 commit 7cb48ed

File tree

3 files changed

+65
-2
lines changed

3 files changed

+65
-2
lines changed

__tests__/services/transformer.ts

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -734,4 +734,55 @@ describe('service transformer', () => {
734734
expect(e.message).toBe(`Unknow message type unknown`)
735735
}
736736
})
737+
738+
test('fromBaileysMessageContent Invalid PreKey ID', async () => {
739+
const phoneNumer = '5549998093075'
740+
const remotePhoneNumber = '+11115551212'
741+
const remoteJid = `${remotePhoneNumber}@s.whatsapp.net`
742+
const id = `wa.${new Date().getTime()}`
743+
const pushName = `Fernanda ${new Date().getTime()}`
744+
const messageTimestamp = new Date().getTime()
745+
const input = {
746+
key: {
747+
remoteJid: remoteJid,
748+
fromMe: false,
749+
id: id,
750+
},
751+
messageTimestamp,
752+
pushName,
753+
messageStubType: 2,
754+
messageStubParameters: ['Invalid PreKey ID'],
755+
}
756+
const body = 'Error on decrypt the message!'
757+
const output = {
758+
object: 'whatsapp_business_account',
759+
entry: [
760+
{
761+
id: phoneNumer,
762+
changes: [
763+
{
764+
value: {
765+
messaging_product: 'whatsapp',
766+
metadata: { display_phone_number: phoneNumer, phone_number_id: phoneNumer },
767+
contacts: [{ profile: { name: pushName }, wa_id: remotePhoneNumber.replace('+', '') }],
768+
statuses: [],
769+
messages: [
770+
{
771+
from: remotePhoneNumber.replace('+', ''),
772+
id,
773+
timestamp: messageTimestamp,
774+
text: { body },
775+
type: 'text',
776+
},
777+
],
778+
errors: [],
779+
},
780+
field: 'messages',
781+
},
782+
],
783+
},
784+
],
785+
}
786+
expect(fromBaileysMessageContent(phoneNumer, input)).toEqual(output)
787+
})
737788
})

src/services/store_file.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ const storeFile: store = async (phone: string): Promise<Store> => {
6161
try {
6262
dataStore.readFromFile(dataFile)
6363
} catch (error) {
64-
console.error(`erro on read message stores`, error)
64+
console.error(`Error on read data store`, error)
6565
}
6666
}
6767
setInterval(() => {

src/services/transformer.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ export const getMessageType = (payload: any) => {
3636
} else if (payload.message) {
3737
const { message } = payload
3838
return TYPE_MESSAGES_TO_PROCESS.find((t) => message[t]) || Object.keys(payload.message)[0]
39+
} else if (payload.messageStubType) {
40+
return 'messageStubType'
3941
}
4042
}
4143

@@ -155,7 +157,7 @@ export const fromBaileysMessageContent = (phone: string, payload: any): any => {
155157
const senderJid = isIndividual ? chatJid : (participant && formatJid(participant)) || chatJid
156158
const senderPhone = jidToPhoneNumber(senderJid)
157159
const messageType = getMessageType(payload)
158-
const binMessage = payload.update || payload.receipt || (messageType && payload.message[messageType])
160+
const binMessage = payload.update || payload.receipt || (messageType && payload.message && payload.message[messageType])
159161
let profileName
160162
if (fromMe) {
161163
profileName = senderPhone
@@ -305,6 +307,16 @@ export const fromBaileysMessageContent = (phone: string, payload: any): any => {
305307
}
306308
break
307309

310+
case 'messageStubType':
311+
const errors = ['Message absent from node', 'Invalid PreKey ID']
312+
if (payload.messageStubType == 2 && payload.messageStubParameters && errors.includes(payload.messageStubParameters[0])) {
313+
message.text = {
314+
body: 'Error on decrypt the message!',
315+
}
316+
message.type = 'text'
317+
}
318+
break
319+
308320
case 'update':
309321
const baileysStatus = payload.status || payload.update.status
310322
switch (baileysStatus) {

0 commit comments

Comments
 (0)