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
255 lines • 9.23 kB
TypeScript
import { HttpClient } from '../../utils/http.utils';
import { AutomationWebResponse } from '../../types/common.types';
import { GetStickersRequest, GetStickersResponse, GetStickersDetailRequest, GetStickersDetailResponse, ParseLinkRequest, ParseLinkResponse, SearchStickersWithDetailsRequest, SearchStickersWithDetailsResponse, GetPopularStickersRequest, GetPopularStickersResponse } from '../../types/dto/search.types';
/**
* Zalo Personal Search Service Class
* 100% khớp với automation-web ZaloSearchController
*/
export declare class SearchService {
private httpClient;
constructor(httpClient: HttpClient);
/**
* Tìm sticker theo từ khóa (cải tiến)
* POST /zalo-personal/search/get-stickers
*
* @param request - Search stickers request
* @returns Promise<AutomationWebResponse<GetStickersResponse>>
*
* @example
* ```typescript
* const result = await searchService.getStickers({
* sessionId: "session-123",
* keyword: "hello",
* limit: 20,
* includeDetails: false
* });
*
* if (result.success) {
* console.log(`Found ${result.data.total} stickers (returned ${result.data.result.length})`);
* console.log('Sticker IDs:', result.data.result);
* if (result.data.details) {
* console.log('Sticker details:', result.data.details);
* }
* }
* ```
*/
getStickers(request: GetStickersRequest): Promise<AutomationWebResponse<GetStickersResponse>>;
/**
* Lấy chi tiết sticker theo IDs
* POST /zalo-personal/search/get-stickers-detail
*
* @param request - Get stickers detail request
* @returns Promise<AutomationWebResponse<GetStickersDetailResponse>>
*
* @example
* ```typescript
* const result = await searchService.getStickersDetail({
* sessionId: "session-123",
* stickerIds: [123, 456, 789]
* });
*
* if (result.success) {
* result.data.result.forEach(sticker => {
* console.log(`Sticker ${sticker.id}: ${sticker.name}`);
* console.log(`Image: ${sticker.imageUrl}`);
* });
* }
* ```
*/
getStickersDetail(request: GetStickersDetailRequest): Promise<AutomationWebResponse<GetStickersDetailResponse>>;
/**
* Parse thông tin metadata từ URL
* POST /zalo-personal/search/parse-link
*
* @param request - Parse link request
* @returns Promise<AutomationWebResponse<ParseLinkResponse>>
*
* @example
* ```typescript
* const result = await searchService.parseLink({
* sessionId: "session-123",
* url: "https://example.com/article"
* });
*
* if (result.success) {
* const metadata = result.data.result;
* console.log('Title:', metadata.title);
* console.log('Description:', metadata.description);
* console.log('Image:', metadata.image);
* console.log('Site:', metadata.siteName);
* }
* ```
*/
parseLink(request: ParseLinkRequest): Promise<AutomationWebResponse<ParseLinkResponse>>;
/**
* Tìm sticker và lấy chi tiết trong một lần gọi (API mới)
* POST /zalo-personal/search/search-with-details
*
* @param request - Search stickers with details request
* @returns Promise<AutomationWebResponse<SearchStickersWithDetailsResponse>>
*
* @example
* ```typescript
* const result = await searchService.searchStickersWithDetails({
* sessionId: "session-123",
* keyword: "hello",
* limit: 10
* });
*
* if (result.success) {
* console.log(`Found ${result.data.total} stickers with details in ${result.data.searchTime}ms`);
* result.data.stickers.forEach(sticker => {
* console.log(`${sticker.text}: ${sticker.stickerUrl}`);
* });
* }
* ```
*/
searchStickersWithDetails(request: SearchStickersWithDetailsRequest): Promise<AutomationWebResponse<SearchStickersWithDetailsResponse>>;
/**
* Lấy danh sách sticker phổ biến (API mới)
* POST /zalo-personal/search/popular-stickers
*
* @param request - Get popular stickers request
* @returns Promise<AutomationWebResponse<GetPopularStickersResponse>>
*
* @example
* ```typescript
* const result = await searchService.getPopularStickers({
* sessionId: "session-123",
* limit: 20,
* categoryId: 1
* });
*
* if (result.success) {
* console.log(`Retrieved ${result.data.stickers.length} popular stickers`);
* result.data.stickers.forEach(sticker => {
* console.log(`${sticker.text}: ${sticker.stickerUrl}`);
* });
* }
* ```
*/
getPopularStickers(request: GetPopularStickersRequest): Promise<AutomationWebResponse<GetPopularStickersResponse>>;
/**
* Tìm stickers và lấy chi tiết (convenience method - sử dụng API mới)
* Sử dụng API mới search-with-details thay vì gọi 2 API riêng biệt
*
* @param sessionId - Session ID
* @param keyword - Search keyword
* @param limit - Số lượng sticker tối đa (default: 10)
* @returns Promise với sticker details
*
* @example
* ```typescript
* const stickers = await searchService.searchStickersWithDetailsConvenience(
* "session-123",
* "hello",
* 10
* );
*
* stickers.forEach(sticker => {
* console.log(`${sticker.text}: ${sticker.stickerUrl}`);
* });
* ```
*/
searchStickersWithDetailsConvenience(sessionId: string, keyword: string, limit?: number): Promise<SearchStickersWithDetailsResponse['stickers']>;
/**
* Tìm stickers và lấy chi tiết (legacy method - backward compatibility)
* Sử dụng cách cũ: gọi getStickers + getStickersDetail
*
* @param sessionId - Session ID
* @param keyword - Search keyword
* @returns Promise với sticker details
*
* @deprecated Sử dụng searchStickersWithDetailsConvenience() thay thế
*/
searchStickersWithDetailsLegacy(sessionId: string, keyword: string): Promise<GetStickersDetailResponse['result']>;
/**
* Batch parse multiple links
* Parse nhiều links cùng lúc
*
* @param sessionId - Session ID
* @param urls - Array of URLs to parse
* @returns Promise với array of parsed metadata
*
* @example
* ```typescript
* const results = await searchService.parseMultipleLinks(
* "session-123",
* ["https://example1.com", "https://example2.com"]
* );
*
* results.forEach((metadata, index) => {
* if (metadata) {
* console.log(`Link ${index + 1}: ${metadata.title}`);
* }
* });
* ```
*/
parseMultipleLinks(sessionId: string, urls: string[]): Promise<(ParseLinkResponse['result'] | null)[]>;
/**
* Lấy sticker phổ biến (convenience method)
*
* @param sessionId - Session ID
* @param limit - Số lượng sticker (default: 20)
* @param categoryId - Category ID để lọc (optional)
* @returns Promise với popular stickers
*
* @example
* ```typescript
* const stickers = await searchService.getPopularStickersConvenience(
* "session-123",
* 20,
* 1
* );
*
* stickers.forEach(sticker => {
* console.log(`${sticker.text}: ${sticker.stickerUrl}`);
* });
* ```
*/
getPopularStickersConvenience(sessionId: string, limit?: number, categoryId?: number): Promise<GetPopularStickersResponse['stickers']>;
/**
* Tìm kiếm sticker nhanh (chỉ trả về IDs)
* Sử dụng API cải tiến với includeDetails = false
*
* @param sessionId - Session ID
* @param keyword - Search keyword
* @param limit - Số lượng sticker tối đa (default: 20)
* @returns Promise với sticker IDs
*
* @example
* ```typescript
* const stickerIds = await searchService.quickSearchStickers(
* "session-123",
* "hello",
* 20
* );
*
* console.log('Found sticker IDs:', stickerIds);
* ```
*/
quickSearchStickers(sessionId: string, keyword: string, limit?: number): Promise<number[]>;
/**
* Tìm kiếm sticker với chi tiết và metadata đầy đủ
* Trả về response đầy đủ bao gồm metadata như searchTime, total, etc.
*
* @param sessionId - Session ID
* @param keyword - Search keyword
* @param limit - Số lượng sticker tối đa (default: 10)
* @returns Promise với full search response
*
* @example
* ```typescript
* const response = await searchService.fullSearchStickers(
* "session-123",
* "hello",
* 10
* );
*
* console.log(`Found ${response.total} stickers in ${response.searchTime}ms`);
* console.log('Stickers:', response.stickers);
* ```
*/
fullSearchStickers(sessionId: string, keyword: string, limit?: number): Promise<SearchStickersWithDetailsResponse | null>;
}
//# sourceMappingURL=search.service.d.ts.map