UNPKG

redai-automation-web-sdk

Version:

TypeScript SDK for RedAI Automation Web API - Zalo Personal automation, messaging, advanced sticker search, and bulk operations. 100% compatible with automation-web backend. v1.8.1: Updated GroupInfo interface to match backend controller with complete gro

129 lines 3.95 kB
"use strict"; /** * Bulk Operations Service * Handles bulk/seeding operations for Zalo Personal automation */ Object.defineProperty(exports, "__esModule", { value: true }); exports.BulkService = void 0; class BulkService { constructor(httpClient) { this.httpClient = httpClient; } /** * Batch check if accounts are in a group * @param request Batch check request * @returns Batch check response */ async batchCheckAccountsInGroup(request) { try { const response = await this.httpClient.post('/zalo-seeding/batch-check-accounts-in-group', request); return response; } catch (error) { throw new Error(`Failed to batch check accounts in group: ${error.message}`); } } /** * Batch add accounts to a group * @param request Batch add request * @returns Batch add response */ async batchAddAccountsToGroup(request) { try { const response = await this.httpClient.post('/zalo-seeding/batch-add-accounts-to-group', request); return response; } catch (error) { throw new Error(`Failed to batch add accounts to group: ${error.message}`); } } /** * Check if a single account is in a group * @param sessionId Session ID * @param groupId Group ID * @param zaloUserId Zalo User ID to check * @returns Check result */ async checkAccountInGroup(sessionId, groupId, zaloUserId) { try { const request = { sessionId, groupId, zaloUserIds: [zaloUserId] }; const response = await this.batchCheckAccountsInGroup(request); if (response.results && response.results.length > 0) { const result = response.results[0]; return { isInGroup: result.isInGroup, error: result.error }; } return { isInGroup: false, error: 'No result returned' }; } catch (error) { return { isInGroup: false, error: error.message }; } } /** * Add a single account to a group * @param sessionId Session ID * @param groupId Group ID * @param zaloUserId Zalo User ID to add * @returns Add result */ async addAccountToGroup(sessionId, groupId, zaloUserId) { try { const request = { sessionId, groupId, zaloUserIds: [zaloUserId] }; const response = await this.batchAddAccountsToGroup(request); if (response.results && response.results.length > 0) { const result = response.results[0]; return { success: result.success, error: result.error }; } return { success: false, error: 'No result returned' }; } catch (error) { return { success: false, error: error.message }; } } /** * Get bulk operation statistics * @param sessionId Session ID * @returns Operation statistics */ async getBulkOperationStats(sessionId) { try { const response = await this.httpClient.get(`/zalo-seeding/stats?sessionId=${sessionId}`); return response; } catch (error) { // Return default stats if endpoint doesn't exist return { totalOperations: 0, successfulOperations: 0, failedOperations: 0 }; } } } exports.BulkService = BulkService; //# sourceMappingURL=bulk.service.js.map