From baf8b3df0075249df1d3fe852ddb2aed28e8c956 Mon Sep 17 00:00:00 2001 From: Bob <115008575+bobslavtriev@users.noreply.github.com> Date: Wed, 3 Jul 2024 04:34:06 -0300 Subject: [PATCH] Feat: Modified number action in group-participants.update (#858) * Update GroupMetadata.ts * Update messages-recv.ts * Update process-message.ts --- src/Socket/messages-recv.ts | 5 +++++ src/Types/GroupMetadata.ts | 2 +- src/Utils/process-message.ts | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index dc2abed..6e64dd6 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -269,6 +269,11 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { } } break + case 'modify': + const oldNumber = getBinaryNodeChildren(child, 'participant').map(p => p.attrs.jid) + msg.messageStubParameters = oldNumber || [] + msg.messageStubType = WAMessageStubType.GROUP_PARTICIPANT_CHANGE_NUMBER + break case 'promote': case 'demote': case 'remove': diff --git a/src/Types/GroupMetadata.ts b/src/Types/GroupMetadata.ts index bc37ada..db8a87b 100644 --- a/src/Types/GroupMetadata.ts +++ b/src/Types/GroupMetadata.ts @@ -2,7 +2,7 @@ import { Contact } from './Contact' export type GroupParticipant = (Contact & { isAdmin?: boolean, isSuperAdmin?: boolean, admin?: 'admin' | 'superadmin' | null }) -export type ParticipantAction = 'add' | 'remove' | 'promote' | 'demote' +export type ParticipantAction = 'add' | 'remove' | 'promote' | 'demote' | 'modify' export type RequestJoinAction = 'created' | 'revoked' | 'rejected' diff --git a/src/Utils/process-message.ts b/src/Utils/process-message.ts index db9b215..49f372f 100644 --- a/src/Utils/process-message.ts +++ b/src/Utils/process-message.ts @@ -308,6 +308,10 @@ const processMessage = async( const participantsIncludesMe = () => participants.find(jid => areJidsSameUser(meId, jid)) switch (message.messageStubType) { + case WAMessageStubType.GROUP_PARTICIPANT_CHANGE_NUMBER: + participants = message.messageStubParameters || [] + emitParticipantsUpdate('modify') + break case WAMessageStubType.GROUP_PARTICIPANT_LEAVE: case WAMessageStubType.GROUP_PARTICIPANT_REMOVE: participants = message.messageStubParameters || []