feat: memberAddMode and joinApprovalMode in groups.update (#532)

* feat: memberAddMode and joinApprovalMode

* feat: memberAddMode and joinApprovalMode

* Update process-message.ts

* fix lint

* Update messages-recv.ts

* Update GroupMetadata.ts

* Update messages-recv.ts

* Update messages-recv.ts

* chore: fix linting and code efficiency

* fix lint

* Fix lint

* Update process-message.ts

* Update process-message.ts

---------

Co-authored-by: Bob <115008575+FortisEtMagnus@users.noreply.github.com>
Co-authored-by: Bob <115008575+bobpetrov@users.noreply.github.com>
Co-authored-by: Rajeh Taher <rajeh@reforward.dev>
This commit is contained in:
Bob
2024-01-19 12:59:57 -03:00
committed by GitHub
parent 408c0070ba
commit 3efd3e00ca
3 changed files with 26 additions and 0 deletions

View File

@@ -299,6 +299,22 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => {
case 'invite':
msg.messageStubType = WAMessageStubType.GROUP_CHANGE_INVITE_LINK
msg.messageStubParameters = [ child.attrs.code ]
break
case 'member_add_mode':
const addMode = child.content
if(addMode) {
msg.messageStubType = WAMessageStubType.GROUP_MEMBER_ADD_MODE
msg.messageStubParameters = [ addMode.toString() ]
}
break
case 'membership_approval_mode':
const approvalMode: any = getBinaryNodeChild(child, 'group_join')
if(approvalMode) {
msg.messageStubType = WAMessageStubType.GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE
msg.messageStubParameters = [ approvalMode.attrs.state ]
}
break
}
}

View File

@@ -34,6 +34,8 @@ export interface GroupMetadata {
inviteCode?: string
/** the person who added you */
author?: string
/** if approval is needed to join the group */
joinApprovalMode?: boolean
}

View File

@@ -349,6 +349,14 @@ const processMessage = async(
const code = message.messageStubParameters?.[0]
emitGroupUpdate({ inviteCode: code })
break
case WAMessageStubType.GROUP_MEMBER_ADD_MODE:
const memberAddValue = message.messageStubParameters?.[0]
emitGroupUpdate({ memberAddMode: memberAddValue === 'all_member_add' })
break
case WAMessageStubType.GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE:
const approvalMode = message.messageStubParameters?.[0]
emitGroupUpdate({ joinApprovalMode: approvalMode === 'on' })
break
}
} else if(content?.pollUpdateMessage) {
const creationMsgKey = content.pollUpdateMessage.pollCreationMessageKey!