UNPKG

@warriorteam/redai-zalo-sdk

Version:

Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account v3.0, ZNS with Full Type Safety, Consultation Service, Broadcast Service, Group Messaging with List APIs, Social APIs, Enhanced Article Management, Promotion Service v3.0 with Multip

67 lines 2.11 kB
/** * Base HTTP client for Zalo API */ import { AxiosInstance } from "axios"; import { ZaloSDKConfig, Logger, RequestConfig } from "../types/common"; /** * Base client for making HTTP requests to Zalo API */ export declare class BaseClient { protected readonly axios: AxiosInstance; protected readonly logger: Logger; protected readonly config: Required<ZaloSDKConfig>; constructor(config: ZaloSDKConfig); /** * Setup axios interceptors for logging and error handling */ private setupInterceptors; /** * Sanitize headers for logging (remove sensitive information) */ private sanitizeHeaders; /** * Handle axios errors and log them */ private handleAxiosError; /** * Make a GET request */ protected get<T = any>(url: string, accessToken?: string, params?: Record<string, any>): Promise<T>; /** * Make a POST request */ protected post<T = any>(url: string, accessToken?: string, data?: any, params?: Record<string, any>): Promise<T>; /** * Make a PUT request */ protected put<T = any>(url: string, accessToken?: string, data?: any, params?: Record<string, any>): Promise<T>; /** * Make a DELETE request */ protected delete<T = any>(url: string, accessToken?: string, params?: Record<string, any>): Promise<T>; /** * Upload file using FormData */ protected uploadFile<T = any>(url: string, accessToken: string, file: Buffer | NodeJS.ReadableStream, filename: string, additionalFields?: Record<string, any>): Promise<T>; /** * Make a generic HTTP request with retry logic */ protected request<T = any>(config: RequestConfig): Promise<T>; /** * Validate Zalo API response for errors */ private validateZaloResponse; /** * Determine if request should be retried */ private shouldRetry; /** * Create SDK error from axios error */ private createSDKError; /** * Delay execution for specified milliseconds */ private delay; } //# sourceMappingURL=base-client.d.ts.map