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
JavaScript
;
/**
* 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