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[]
|
values: string[]
|
||||||
/** 32 byte message secret to encrypt poll selections */
|
/** 32 byte message secret to encrypt poll selections */
|
||||||
messageSecret?: Uint8Array
|
messageSecret?: Uint8Array
|
||||||
|
toAnnouncementGroup?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
type SharePhoneNumber = {
|
type SharePhoneNumber = {
|
||||||
|
|||||||
@@ -435,6 +435,7 @@ export const generateWAMessageContent = async(
|
|||||||
m.listResponseMessage = { ...message.listReply }
|
m.listResponseMessage = { ...message.listReply }
|
||||||
} else if('poll' in message) {
|
} else if('poll' in message) {
|
||||||
message.poll.selectableCount ||= 0
|
message.poll.selectableCount ||= 0
|
||||||
|
message.poll.toAnnouncementGroup ||= false
|
||||||
|
|
||||||
if(!Array.isArray(message.poll.values)) {
|
if(!Array.isArray(message.poll.values)) {
|
||||||
throw new Boom('Invalid poll values', { statusCode: 400 })
|
throw new Boom('Invalid poll values', { statusCode: 400 })
|
||||||
@@ -455,11 +456,24 @@ export const generateWAMessageContent = async(
|
|||||||
messageSecret: message.poll.messageSecret || randomBytes(32),
|
messageSecret: message.poll.messageSecret || randomBytes(32),
|
||||||
}
|
}
|
||||||
|
|
||||||
m.pollCreationMessage = {
|
const pollCreationMessage = {
|
||||||
name: message.poll.name,
|
name: message.poll.name,
|
||||||
selectableOptionsCount: message.poll.selectableCount,
|
selectableOptionsCount: message.poll.selectableCount,
|
||||||
options: message.poll.values.map(optionName => ({ optionName })),
|
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) {
|
} else if('sharePhoneNumber' in message) {
|
||||||
m.protocolMessage = {
|
m.protocolMessage = {
|
||||||
type: proto.Message.ProtocolMessage.Type.SHARE_PHONE_NUMBER
|
type: proto.Message.ProtocolMessage.Type.SHARE_PHONE_NUMBER
|
||||||
|
|||||||
Reference in New Issue
Block a user