feat: added group_admin_changed event (#2018)

* docs: updated

* added group-admin-change event

* minor changes

* added usage example

* minor changes: code docs updated
This commit is contained in:
alechkos
2023-04-01 19:40:47 +03:00
committed by GitHub
parent ac7df25075
commit 9f15499592
4 changed files with 27 additions and 0 deletions

View File

@@ -270,3 +270,14 @@ client.on('disconnected', (reason) => {
console.log('Client was logged out', reason);
});
client.on('group_admin_changed', (notification) => {
if (notification.type === 'promote') {
/**
* Emitted when a current user is promoted to an admin.
* {@link notification.author} is a user who performs the action of promoting/demoting the current user.
*/
console.log(`You were promoted by ${notification.author}`);
} else if (notification.type === 'demote')
/** Emitted when a current user is demoted to a regular user. */
console.log(`You were demoted by ${notification.author}`);
});

7
index.d.ts vendored
View File

@@ -198,6 +198,12 @@ declare namespace WAWebJS {
notification: GroupNotification
) => void): this
/** Emitted when a current user is promoted to an admin or demoted to a regular user */
on(event: 'group_admin_changed', listener: (
/** GroupNotification with more information about the action */
notification: GroupNotification
) => void): this
/** Emitted when group settings are updated, such as subject, description or picture */
on(event: 'group_update', listener: (
/** GroupNotification with more information about the action */
@@ -512,6 +518,7 @@ declare namespace WAWebJS {
MEDIA_UPLOADED = 'media_uploaded',
GROUP_JOIN = 'group_join',
GROUP_LEAVE = 'group_leave',
GROUP_ADMIN_CHANGED = 'group_admin_changed',
GROUP_UPDATE = 'group_update',
QR_RECEIVED = 'qr',
LOADING_SCREEN = 'loading_screen',

View File

@@ -45,6 +45,7 @@ const NoAuth = require('./authStrategies/NoAuth');
* @fires Client#group_update
* @fires Client#disconnected
* @fires Client#change_state
* @fires Client#group_admin_changed
*/
class Client extends EventEmitter {
constructor(options = {}) {
@@ -317,6 +318,13 @@ class Client extends EventEmitter {
* @param {GroupNotification} notification GroupNotification with more information about the action
*/
this.emit(Events.GROUP_LEAVE, notification);
} else if (msg.subtype === 'promote' || msg.subtype === 'demote') {
/**
* Emitted when a current user is promoted to an admin or demoted to a regular user.
* @event Client#group_admin_changed
* @param {GroupNotification} notification GroupNotification with more information about the action
*/
this.emit(Events.GROUP_ADMIN_CHANGED, notification);
} else {
/**
* Emitted when group settings are updated, such as subject, description or picture.

View File

@@ -46,6 +46,7 @@ exports.Events = {
MEDIA_UPLOADED: 'media_uploaded',
GROUP_JOIN: 'group_join',
GROUP_LEAVE: 'group_leave',
GROUP_ADMIN_CHANGED: 'group_admin_changed',
GROUP_UPDATE: 'group_update',
QR_RECEIVED: 'qr',
LOADING_SCREEN: 'loading_screen',