wppconnect-api / src /api /layers /labels.layer.ts
AUXteam's picture
Upload folder using huggingface_hub
4c34106 verified
/*
* This file is part of WPPConnect.
*
* WPPConnect is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WPPConnect is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with WPPConnect. If not, see <https://www.gnu.org/licenses/>.
*/
import { Page } from 'puppeteer';
import { CreateConfig } from '../../config/create-config';
import { evaluateAndReturn } from '../helpers';
import { CatalogLayer } from './catalog.layer';
export class LabelsLayer extends CatalogLayer {
constructor(public page: Page, session?: string, options?: CreateConfig) {
super(page, session, options);
}
/**
* Create New Label
* @category Labels
*
* @example
* ```javascript
* client.addNewLabel(`Name of label`);
* //or
* client.addNewLabel(`Name of label`, { labelColor: '#dfaef0' });
* //or
* client.addNewLabel(`Name of label`, { labelColor: 4292849392 });
* ```
* @param name Name of label
* @param options options of label
*/
public async addNewLabel(name: string, options?: string) {
return await evaluateAndReturn(
this.page,
({ name, options }) => {
WPP.labels.addNewLabel(name, options);
},
{ name, options }
);
}
/**
* Add or delete label of chatId
* @category Labels
*
* @example
* ```javascript
* client.addOrRemoveLabels(['[number]@c.us','[number]@c.us'],
* [
* { labelId:'76', type:'add' },
* { labelId:'75', type:'remove' }
* ]);
* //or
* ```
* @param chatIds ChatIds
* @param options options to remove or add
*/
public async addOrRemoveLabels(
chatIds: string,
options: {
labelId: string;
type: 'add' | 'remove';
}[]
) {
return await evaluateAndReturn(
this.page,
({ chatIds, options }) => {
WPP.labels.addOrRemoveLabels(chatIds, options);
},
{ chatIds, options }
);
}
/**
* Get all Labels
*
* @example
* ```javascript
* client.getAllLabels();
* ```
*/
public async getAllLabels() {
return evaluateAndReturn(this.page, () => WPP.labels.getAllLabels());
}
/**
* Get Label by id
* @category Labels
* @param id - Id of label
*
* @example
* ```javascript
* client.getLabelById('1');
* ```
*/
public async getLabelById(id: string) {
return await evaluateAndReturn(
this.page,
({ id }) => {
WPP.labels.getLabelById(id);
},
{ id }
);
}
/**
* Delete all Labels
* @category Labels
*
* @example
* ```javascript
* client.deleteAllLabels();
* ```
*/
public async deleteAllLabels() {
return await evaluateAndReturn(this.page, () => {
WPP.labels.deleteAllLabels();
});
}
/**
* Add or delete label of chatId
* @category Labels
*
* @example
* ```javascript
* client.deleteLabel();
* ```
* @param id Id or string to labels to delete
*/
public async deleteLabel(id: string | string[]) {
return await evaluateAndReturn(
this.page,
({ id }) => {
WPP.labels.deleteLabel(id);
},
{ id }
);
}
}