mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
feat(feature/poll-v3): initial/final commit (#957)
This commit is contained in:
@@ -94,6 +94,7 @@ export type PollMessageOptions = {
|
||||
values: string[]
|
||||
/** 32 byte message secret to encrypt poll selections */
|
||||
messageSecret?: Uint8Array
|
||||
toAnnouncementGroup?: boolean
|
||||
}
|
||||
|
||||
type SharePhoneNumber = {
|
||||
|
||||
@@ -435,6 +435,7 @@ export const generateWAMessageContent = async(
|
||||
m.listResponseMessage = { ...message.listReply }
|
||||
} else if('poll' in message) {
|
||||
message.poll.selectableCount ||= 0
|
||||
message.poll.toAnnouncementGroup ||= false
|
||||
|
||||
if(!Array.isArray(message.poll.values)) {
|
||||
throw new Boom('Invalid poll values', { statusCode: 400 })
|
||||
@@ -455,11 +456,24 @@ export const generateWAMessageContent = async(
|
||||
messageSecret: message.poll.messageSecret || randomBytes(32),
|
||||
}
|
||||
|
||||
m.pollCreationMessage = {
|
||||
const pollCreationMessage = {
|
||||
name: message.poll.name,
|
||||
selectableOptionsCount: message.poll.selectableCount,
|
||||
options: message.poll.values.map(optionName => ({ optionName })),
|
||||
}
|
||||
|
||||
if (message.poll.toAnnouncementGroup) {
|
||||
// poll v2 is for community announcement groups (single select and multiple)
|
||||
m.pollCreationMessageV2 = pollCreationMessage
|
||||
} else {
|
||||
if(message.poll.selectableCount > 0) {
|
||||
//poll v3 is for single select polls
|
||||
m.pollCreationMessageV3 = pollCreationMessage
|
||||
} else {
|
||||
// poll v3 for multiple choice polls
|
||||
m.pollCreationMessage = pollCreationMessage
|
||||
}
|
||||
}
|
||||
} else if('sharePhoneNumber' in message) {
|
||||
m.protocolMessage = {
|
||||
type: proto.Message.ProtocolMessage.Type.SHARE_PHONE_NUMBER
|
||||
|
||||
Reference in New Issue
Block a user