feat: approve, reject, list request join (#117)

This commit is contained in:
aqulzz
2023-06-12 19:34:50 +07:00
committed by GitHub
parent 226d9af66c
commit 7dc1cd6476
2 changed files with 56 additions and 0 deletions

View File

@@ -847,6 +847,21 @@ Of course, replace ``` xyz ``` with an actual ID.
```
Of course, replace ``` xxx ``` with invitation code.
- To get list request join
``` ts
const response = await sock.groupRequestParticipantsList("abcd-xyz@g.us")
console.log(response)
```
- To approve/reject request join
``` ts
const response = await sock.groupRequestParticipantsUpdate(
"abcd-xyz@g.us", // id group,
["abcd@s.whatsapp.net", "efgh@s.whatsapp.net"],
"approve" // replace this parameter with "reject"
)
console.log(response)
```
## Privacy
- To get the privacy settings
``` ts

View File

@@ -130,6 +130,47 @@ export const makeGroupsSocket = (config: SocketConfig) => {
]
)
},
groupRequestParticipantsList: async(jid: string) => {
const result = await groupQuery(
jid,
'get',
[
{
tag: 'membership_approval_requests',
attrs: {}
}
]
)
const node = getBinaryNodeChild(result, 'membership_approval_requests')
const participants = getBinaryNodeChildren(node, 'membership_approval_request')
return participants.map(v => v.attrs)
},
groupRequestParticipantsUpdate: async(jid: string, participants: string[], action: 'approve' | 'reject') => {
const result = await groupQuery(
jid,
'set',
[{
tag: 'membership_requests_action',
attrs: {},
content: [
{
tag: action,
attrs: { },
content: participants.map(jid => ({
tag: 'participant',
attrs: { jid }
}))
}
]
}]
)
const node = getBinaryNodeChild(result, 'membership_requests_action')
const nodeAction = getBinaryNodeChild(node!, action)
const participantsAffected = getBinaryNodeChildren(nodeAction!, 'participant')
return participantsAffected.map(p => {
return { status: p.attrs.error || '200', jid: p.attrs.jid }
})
},
groupParticipantsUpdate: async(
jid: string,
participants: string[],