UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

110 lines (109 loc) 4.54 kB
/** * Модуль для отправки HTTP-запросов. * Предоставляет функционал для работы с различными типами запросов и ответов */ import { IGetParams } from '../../utils'; import { AppContext } from '../../core'; import { IRequestSend } from '../interfaces/IRequest'; /** * Класс для отправки HTTP-запросов к API различных платформ. Используется внутри адаптеров для взаимодействия с внешними сервисами. * Поддерживает различные типы запросов, заголовки и отправку файлов * * @class Request */ export declare class Request { #private; /** Заголовок для отправки form-data */ static readonly HEADER_FORM_DATA: Record<string, string>; /** Заголовок для JSON контента */ static readonly HEADER_JSON: Record<string, string>; /** URL для отправки запроса */ url: string | null; /** GET-параметры запроса */ get: IGetParams | null; /** POST-параметры запроса */ post: Record<string, unknown> | null | FormData; /** POST-параметры запроса в виде строки */ postInString: string | null; /** HTTP-заголовки запроса */ header: HeadersInit | null; /** Прикрепленный файл (URL, путь или содержимое) */ attach: string | null; /** * Тип передаваемого файла * true - передается содержимое файла * false - передается путь к файлу * @defaultValue false */ isAttachContent: boolean; /** * Имя параметра при отправке файла * @defaultValue file */ attachName: string; /** Кастомный HTTP-метод (DELETE и т.д.) */ customRequest: string | null; /** Максимальное время ожидания ответа (мс) */ maxTimeQuery: number | null; /** * Преобразование ответа в JSON * true - ответ будет преобразован в JSON * false - ответ будет возвращен как текст * @defaultValue true */ isConvertJson: boolean; /** * Флаг, указывающий, что ожидается бинарный ответ */ isBinaryResponse: boolean; /** * Создает новый экземпляр Request. * Инициализирует все поля значениями по умолчанию */ constructor(appContext: AppContext); /** * Устанавливает контекст приложения * @param appContext */ setAppContext(appContext: AppContext): void; /** * Отправляет HTTP-запрос * * @param url - URL для отправки запроса (если не указан, используется this.url) * @returns Результат выполнения запроса */ send<T>(url?: string | null): Promise<IRequestSend<T>>; /** * Формирует URL с GET-параметрами * * @returns {string} Полный URL с параметрами */ protected _getUrl(): string; /** * Формирует параметры для http запроса * * @returns {RequestInit|undefined} Параметры запроса */ protected _getOptions(): Promise<RequestInit | undefined>; /** * Добавляет файл в FormData * @param formData * @param filePath * @param fileName */ addAttachFile(formData: FormData, filePath: string, fileName?: string): Promise<void>; /** * Создает FormData для отправки файла * * @param {string} filePath - Путь к файлу * @param {string} [fileName] - Имя файла * @returns {FormData|null} FormData с файлом или null в случае ошибки */ getAttachFile(filePath: string, fileName?: string): Promise<FormData | null>; /** * Возвращает текст последней ошибки * * @returns {string|null} Текст ошибки или null */ getError(): Error | string | null; }