feat(feature/poll-v3): initial/final commit (#957)

This commit is contained in:
Rajeh Taher
2024-08-14 12:06:32 +03:00
committed by GitHub
parent 07742e651e
commit e91501026c
2 changed files with 16 additions and 1 deletions

View File

@@ -94,6 +94,7 @@ export type PollMessageOptions = {
values: string[]
/** 32 byte message secret to encrypt poll selections */
messageSecret?: Uint8Array
toAnnouncementGroup?: boolean
}
type SharePhoneNumber = {

View File

@@ -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