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

255 lines 9.23 kB
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