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
239 lines • 7.73 kB
JavaScript
;
/**
* Zalo Personal Friend Management Service
* 100% khớp với automation-web/src/module/zalo-friend
* Đã hợp nhất DTOs và Service class trong 1 file duy nhất
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.FriendService = void 0;
/**
* Zalo Personal Friend Management Service Class
* 100% khớp với automation-web ZaloFriendController
*/
class FriendService {
constructor(httpClient) {
this.httpClient = httpClient;
}
// ==================== BASIC FRIEND METHODS ====================
/**
* Lấy tất cả friends
* POST /zalo-personal/friends/all
* @returns ZaloGetAllFriendsResponse - Array của ZaloFriendItem từ SDK (dữ liệu thô)
*/
async getAllFriends(request) {
const response = await this.httpClient.post('/zalo-personal/friends/all', {
sessionId: request.sessionId,
});
return response;
}
/**
* Tìm kiếm friends
* POST /zalo-personal/friends/search
*/
async searchFriends(request) {
const response = await this.httpClient.post('/zalo-personal/friends/search', {
sessionId: request.sessionId,
keyword: request.keyword,
limit: request.limit,
});
return response;
}
/**
* Lấy thông tin chi tiết friends
* POST /zalo-personal/friends/info
*/
async getFriendsInfo(request) {
const response = await this.httpClient.post('/zalo-personal/friends/info', {
sessionId: request.sessionId,
friendIds: request.friendIds,
});
return response;
}
/**
* Lấy friends đang online
* POST /zalo-personal/friends/online
*/
async getOnlineFriends(request) {
const response = await this.httpClient.post('/zalo-personal/friends/online', {
sessionId: request.sessionId,
});
return response;
}
/**
* Lấy thống kê friends
* GET /zalo-personal/friends/stats
*/
async getFriendsStats(sessionId) {
const response = await this.httpClient.get(`/zalo-personal/friends/stats?sessionId=${sessionId}`);
return response;
}
// ==================== FRIEND REQUEST METHODS ====================
/**
* Gửi lời mời kết bạn
* POST /zalo-personal/friends/request/send
*/
async sendFriendRequest(request) {
const response = await this.httpClient.post('/zalo-personal/friends/request/send', {
sessionId: request.sessionId,
userId: request.userId,
message: request.message,
});
return response;
}
/**
* Chấp nhận lời mời kết bạn
* POST /zalo-personal/friends/request/accept
*/
async acceptFriendRequest(request) {
const response = await this.httpClient.post('/zalo-personal/friends/request/accept', {
sessionId: request.sessionId,
userId: request.userId,
});
return response;
}
/**
* Lấy danh sách lời mời nhận được
* POST /zalo-personal/friends/request/received
*/
async getReceivedFriendRequests(request) {
const response = await this.httpClient.post('/zalo-personal/friends/request/received', {
sessionId: request.sessionId,
});
return response;
}
/**
* Lấy danh sách lời mời đã gửi
* POST /zalo-personal/friends/request/sent
*/
async getSentFriendRequests(request) {
const response = await this.httpClient.post('/zalo-personal/friends/request/sent', {
sessionId: request.sessionId,
});
return response;
}
/**
* Hủy lời mời đã gửi
* POST /zalo-personal/friends/request/undo
*/
async undoFriendRequest(request) {
const response = await this.httpClient.post('/zalo-personal/friends/request/undo', {
sessionId: request.sessionId,
userId: request.userId,
});
return response;
}
// ==================== FRIEND MANAGEMENT METHODS ====================
/**
* Xóa bạn bè
* POST /zalo-personal/friends/remove
*/
async removeFriend(request) {
const response = await this.httpClient.post('/zalo-personal/friends/remove', {
sessionId: request.sessionId,
friendId: request.friendId,
});
return response;
}
/**
* Chặn user
* POST /zalo-personal/friends/block
*/
async blockUser(request) {
const response = await this.httpClient.post('/zalo-personal/friends/block', {
sessionId: request.sessionId,
userId: request.userId,
});
return response;
}
/**
* Bỏ chặn user
* POST /zalo-personal/friends/unblock
*/
async unblockUser(request) {
const response = await this.httpClient.post('/zalo-personal/friends/unblock', {
sessionId: request.sessionId,
userId: request.userId,
});
return response;
}
/**
* Thay đổi biệt danh friend
* POST /zalo-personal/friends/alias/change
*/
async changeFriendAlias(request) {
const response = await this.httpClient.post('/zalo-personal/friends/alias/change', {
sessionId: request.sessionId,
friendId: request.friendId,
alias: request.alias,
});
return response;
}
/**
* Xóa biệt danh friend
* POST /zalo-personal/friends/alias/remove
*/
async removeFriendAlias(request) {
const response = await this.httpClient.post('/zalo-personal/friends/alias/remove', {
sessionId: request.sessionId,
friendId: request.friendId,
});
return response;
}
/**
* Lấy danh sách biệt danh
* POST /zalo-personal/friends/alias/list
*/
async getAliasList(request) {
const response = await this.httpClient.post('/zalo-personal/friends/alias/list', {
sessionId: request.sessionId,
count: request.count,
page: request.page,
});
return response;
}
// ==================== USER SEARCH & ACCOUNT METHODS ====================
/**
* Tìm kiếm user theo số điện thoại
* POST /zalo-personal/friends/find-user
*/
async findUser(request) {
const response = await this.httpClient.post('/zalo-personal/friends/find-user', {
sessionId: request.sessionId,
phoneNumbers: request.phoneNumbers,
});
return response;
}
/**
* Lấy thời gian last online
* POST /zalo-personal/friends/last-online
*/
async getLastOnline(request) {
const response = await this.httpClient.post('/zalo-personal/friends/last-online', {
sessionId: request.sessionId,
userId: request.userId,
});
return response;
}
/**
* Lấy own ID
* POST /zalo-personal/friends/own-id
*/
async getOwnId(request) {
const response = await this.httpClient.post('/zalo-personal/friends/own-id', {
sessionId: request.sessionId,
});
return response;
}
/**
* Lấy thông tin tài khoản
* POST /zalo-personal/friends/account-info
*/
async fetchAccountInfo(request) {
const response = await this.httpClient.post('/zalo-personal/friends/account-info', {
sessionId: request.sessionId,
});
return response;
}
}
exports.FriendService = FriendService;
//# sourceMappingURL=friends.service.js.map