UNPKG

evolution-api-client

Version:

A TypeScript/Node.js client library for interacting with the Evolution API WhatsApp integration.

151 lines (137 loc) 4.12 kB
import { GroupConfig, GroupResponse, InviteCodeResponse, IConfig } from '../types'; import { BaseService } from './base-service'; import axios from 'axios'; export class GroupService extends BaseService { constructor(config: IConfig) { super(config); } async createGroup(config: GroupConfig): Promise<GroupResponse> { try { const response = await this.axiosInstance.post( `/group/create/${this.instance}`, config ); return response.data; } catch (error) { throw this.handleError(error); } } async updateGroupPicture(groupJid: string, image: string): Promise<GroupResponse> { try { const response = await this.axiosInstance.post( `/group/updateGroupPicture/${this.instance}`, { groupJid, image } ); return response.data; } catch (error) { throw this.handleError(error); } } async updateGroupSubject(groupJid: string, subject: string): Promise<GroupResponse> { try { const response = await this.axiosInstance.post( `/group/updateGroupSubject/${this.instance}`, { groupJid, subject } ); return response.data; } catch (error) { throw this.handleError(error); } } async updateGroupDescription(groupId: string, description: string): Promise<GroupResponse> { try { const response = await this.axiosInstance.post( `/group/desc/${this.instance}`, { groupId, description } ); return response.data; } catch (error) { throw this.handleError(error); } } async addParticipants(groupId: string, participants: string[]): Promise<GroupResponse> { try { const response = await this.axiosInstance.post( `/group/add/${this.instance}`, { groupId, participants } ); return response.data; } catch (error) { throw this.handleError(error); } } async removeParticipants(groupId: string, participants: string[]): Promise<GroupResponse> { try { const response = await this.axiosInstance.post( `/group/remove/${this.instance}`, { groupId, participants } ); return response.data; } catch (error) { throw this.handleError(error); } } async promoteParticipants(groupId: string, participants: string[]): Promise<GroupResponse> { try { const response = await this.axiosInstance.post( `/group/promote/${this.instance}`, { groupId, participants } ); return response.data; } catch (error) { throw this.handleError(error); } } async demoteParticipants(groupId: string, participants: string[]): Promise<GroupResponse> { try { const response = await this.axiosInstance.post( `/group/demote/${this.instance}`, { groupId, participants } ); return response.data; } catch (error) { throw this.handleError(error); } } async fetchInviteCode(groupId: string): Promise<InviteCodeResponse> { try { const response = await this.axiosInstance.get( `/group/invitecode/${this.instance}/${groupId}` ); return response.data; } catch (error) { throw this.handleError(error); } } async revokeInviteCode(groupId: string): Promise<InviteCodeResponse> { try { const response = await this.axiosInstance.delete( `/group/invitecode/${this.instance}/${groupId}` ); return response.data; } catch (error) { throw this.handleError(error); } } async leaveGroup(groupId: string): Promise<GroupResponse> { try { const response = await this.axiosInstance.post( `/group/leave/${this.instance}`, { groupId } ); return response.data; } catch (error) { throw this.handleError(error); } } async getInfo(groupJid: string): Promise<GroupResponse> { try { const response = await this.axiosInstance.get( `/group/getInfo/${this.instance}?id=${groupJid}` ); return response.data; } catch (error) { throw this.handleError(error); } } }