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
253 lines • 8.22 kB
JavaScript
;
/**
* Zalo Personal Group Management Service
* 100% khớp với automation-web/src/module/zalo-group/controllers/zalo-group.controller.ts
* Đã thêm đầy đủ 19 methods để đồng bộ hoàn toàn với backend controller
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.GroupService = void 0;
/**
* Zalo Personal Group Management Service Class
* 100% khớp với automation-web ZaloGroupController
* Bao gồm đầy đủ 19 methods: 15 cơ bản + 4 advanced link/invite
*/
class GroupService {
constructor(httpClient) {
this.httpClient = httpClient;
}
/**
* Lấy tất cả groups
* POST /zalo-personal/groups/all
*/
async getAllGroups(request) {
const response = await this.httpClient.post('/zalo-personal/groups/all', {
sessionId: request.sessionId,
});
return response;
}
/**
* Lấy thông tin chi tiết của group
* POST /zalo-personal/groups/info
*/
async getGroupInfo(request) {
const response = await this.httpClient.post('/zalo-personal/groups/info', {
sessionId: request.sessionId,
groupId: request.groupId,
});
return response;
}
/**
* Tạo group mới
* POST /zalo-personal/groups/create
*/
async createGroup(request) {
const response = await this.httpClient.post('/zalo-personal/groups/create', request);
return response;
}
/**
* Thêm member vào group
* POST /zalo-personal/groups/add-members
*/
async addMemberToGroup(request) {
const response = await this.httpClient.post('/zalo-personal/groups/add-members', {
sessionId: request.sessionId,
groupId: request.groupId,
memberIds: request.memberIds,
});
return response;
}
/**
* Remove member khỏi group
* POST /zalo-personal/groups/remove-member
*/
async removeMemberFromGroup(request) {
const response = await this.httpClient.post('/zalo-personal/groups/remove-member', {
sessionId: request.sessionId,
groupId: request.groupId,
memberId: request.memberId,
banDuration: request.banDuration || 0,
});
return response;
}
/**
* Đổi tên group
* PUT /zalo-personal/groups/change-name
*/
async changeGroupName(request) {
const response = await this.httpClient.put('/zalo-personal/groups/change-name', {
sessionId: request.sessionId,
groupId: request.groupId,
newName: request.newName,
});
return response;
}
/**
* Lấy danh sách members của group
* POST /zalo-personal/groups/members
* Nếu không truyền page/limit thì sẽ lấy tất cả members
* 100% khớp với automation-web controller
*/
async getGroupMembers(request) {
const requestBody = {
sessionId: request.sessionId,
groupId: request.groupId,
};
// Chỉ thêm các optional fields nếu user có truyền
if (request.page !== undefined) {
requestBody.page = request.page;
}
if (request.limit !== undefined) {
requestBody.limit = request.limit;
}
if (request.batchSize !== undefined) {
requestBody.batchSize = request.batchSize;
}
if (request.delayMs !== undefined) {
requestBody.delayMs = request.delayMs;
}
const response = await this.httpClient.post('/zalo-personal/groups/members', requestBody);
return response;
}
/**
* Rời nhóm
* POST /zalo-personal/groups/leave
*/
async leaveGroup(request) {
const response = await this.httpClient.post('/zalo-personal/groups/leave', {
sessionId: request.sessionId,
groupId: request.groupId,
});
return response;
}
/**
* Giải tán nhóm
* DELETE /zalo-personal/groups/disperse
*/
async disperseGroup(request) {
const response = await this.httpClient.delete('/zalo-personal/groups/disperse', {
sessionId: request.sessionId,
groupId: request.groupId,
});
return response;
}
/**
* Tham gia nhóm qua link
* POST /zalo-personal/groups/join
* 100% khớp với automation-web controller
*/
async joinGroup(request) {
const response = await this.httpClient.post('/zalo-personal/groups/join', {
sessionId: request.sessionId,
link: request.link,
});
return response;
}
/**
* Đổi avatar nhóm
* PUT /zalo-personal/groups/change-avatar
*/
async changeGroupAvatar(request) {
const response = await this.httpClient.put('/zalo-personal/groups/change-avatar', {
sessionId: request.sessionId,
groupId: request.groupId,
avatarPath: request.avatarPath,
});
return response;
}
/**
* Cập nhật cài đặt nhóm
* PUT /zalo-personal/groups/update-settings
*/
async updateGroupSettings(request) {
const response = await this.httpClient.put('/zalo-personal/groups/update-settings', {
sessionId: request.sessionId,
groupId: request.groupId,
settings: request.settings,
});
return response;
}
/**
* Chuyển quyền owner nhóm
* POST /zalo-personal/groups/change-owner
*/
async changeGroupOwner(request) {
const response = await this.httpClient.post('/zalo-personal/groups/change-owner', {
sessionId: request.sessionId,
groupId: request.groupId,
newOwnerId: request.newOwnerId,
});
return response;
}
/**
* Thêm phó admin
* POST /zalo-personal/groups/add-deputy
*/
async addGroupDeputy(request) {
const response = await this.httpClient.post('/zalo-personal/groups/add-deputy', {
sessionId: request.sessionId,
groupId: request.groupId,
memberIds: request.memberIds,
});
return response;
}
/**
* Xóa phó admin
* POST /zalo-personal/groups/remove-deputy
*/
async removeGroupDeputy(request) {
const response = await this.httpClient.post('/zalo-personal/groups/remove-deputy', {
sessionId: request.sessionId,
groupId: request.groupId,
memberIds: request.memberIds,
});
return response;
}
/**
* Enable group link
* POST /zalo-personal/groups/enable-link
*/
async enableGroupLink(request) {
const response = await this.httpClient.post('/zalo-personal/groups/enable-link', {
sessionId: request.sessionId,
groupId: request.groupId,
});
return response;
}
/**
* Disable group link
* POST /zalo-personal/groups/disable-link
*/
async disableGroupLink(request) {
const response = await this.httpClient.post('/zalo-personal/groups/disable-link', {
sessionId: request.sessionId,
groupId: request.groupId,
});
return response;
}
/**
* Get group link info
* POST /zalo-personal/groups/link-info
* 100% khớp với automation-web controller
*/
async getGroupLinkInfo(request) {
const response = await this.httpClient.post('/zalo-personal/groups/link-info', {
sessionId: request.sessionId,
link: request.link,
});
return response;
}
/**
* Invite user to multiple groups
* POST /zalo-personal/groups/invite-to-groups
*/
async inviteUserToGroups(request) {
const response = await this.httpClient.post('/zalo-personal/groups/invite-to-groups', {
sessionId: request.sessionId,
memberId: request.memberId,
groupIds: request.groupIds,
});
return response;
}
}
exports.GroupService = GroupService;
//# sourceMappingURL=groups.service.js.map