socaity
Version:
SDK for Generative AI. Build AI-powered applications with ease
76 lines (75 loc) • 2.67 kB
TypeScript
import { EndpointMetadata, SocaityJob } from '../../types';
/**
* Handles HTTP requests to the Socaity API using native fetch
*/
export declare class RequestHandler {
private config;
private uploadFileThresholdMB;
private maxFileUploadLimitMB;
private fastCloud;
private abortController;
private responseParser;
constructor();
/**
* Match request parameters against defined parameters
* @param definingParams Expected parameters
* @param params Actual parameters
*/
matchParams(definingParams: Record<string, any>, params: Record<string, any>): Record<string, any>;
/**
* Parse query parameters for the request
* @param endpoint Endpoint metadata
* @param params Request parameters
*/
parseQueryParams(endpoint: EndpointMetadata, params: Record<string, any>): Record<string, any>;
/**
* Parse body parameters for the request
* @param endpoint Endpoint metadata
* @param params Request parameters
*/
parseBodyParams(endpoint: EndpointMetadata, params: Record<string, any>): Record<string, any>;
/**
* Parse file parameters for the request
* @param endpoint Endpoint metadata
* @param params Request parameters
* @returns Processed file parameters
*/
parseFileParams(endpoint: EndpointMetadata, params: Record<string, any>): Promise<Record<string, any>>;
/**
* Validates that an API key is available
* @private
*/
private validateAPIKey;
/**
* Build query string from parameters
* @private
*/
private buildQueryString;
/**
* Format error response from fetch
* @private
*/
private formatErrorResponse;
/**
* Send a request to the API
* @param path API endpoint path
* @param method HTTP method
* @param queryParams URL query parameters
* @param bodyParams Request body parameters
* @param apiKey API key for authentication
* @param fileParams Optional files to upload
*/
sendRequest(path: string, method?: 'GET' | 'POST', queryParams?: Record<string, any>, bodyParams?: Record<string, any>, fileParams?: Record<string, any>, apiKey?: string): Promise<Record<string, string> | string | null>;
/**
* Make a request to a specific endpoint
* @param endpoint Endpoint metadata
* @param params Request parameters
* @param apiKey API key
*/
request_endpoint(endpoint: EndpointMetadata, params: Record<string, any>, apiKey?: string): Promise<SocaityJob>;
refresh_status(job_id: string): Promise<SocaityJob>;
/**
* Abort any ongoing requests
*/
abort(): void;
}