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

@@ -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[],