UNPKG

umbot

Version:

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

147 lines (146 loc) 5.79 kB
import { IYandexApi } from './interfaces'; import { AppContext, Request } from '../../../index'; /** * @class YandexRequest * Класс для работы с API Яндекса * * Предоставляет методы для отправки запросов к API Яндекса, * управления авторизацией и обработки ошибок. * * @example * ```ts * // Создание экземпляра * const api = new YandexRequest('your-token'); * * // Установка нового токена * api.setOAuth('new-token'); * * // Выполнение запроса * const result = await api.call<ApiResponse>('...'); * if (result) { * // Обработка успешного ответа * console.log(result); * } else { * // Обработка ошибки * console.error(api.#error); * } * ``` */ export declare class YandexRequest { #private; /** * Экземпляр класса для отправки HTTP-запросов */ protected _request: Request; /** * Контекст приложения. */ protected _appContext: AppContext; /** * Создает экземпляр класса YandexRequest * * Инициализирует класс с OAuth-токеном и настраивает * параметры HTTP-запросов. * * @param {string | null} [oauth=null] - OAuth-токен для авторизации * @param {AppContext} [appContext] - Контекст приложения * * @remarks * Если токен не указан, будет использован токен из appContext.platformParams.yandex_token. * Если и там токена нет, запросы будут выполняться без авторизации. * * @example * ```ts * // Создание с токеном * const api = new YandexRequest('your-token'); * * // Создание без токена (будет использован токен из appContext.platformParams) * const api = new YandexRequest(); * * // Создание без авторизации * const api = new YandexRequest(null); * ``` */ constructor(oauth: string | null | undefined, appContext: AppContext); get oauth(): string | null | undefined; /** * Устанавливает OAuth-токен для авторизации * * Обновляет токен авторизации и заголовки запросов. * При установке токена автоматически добавляется заголовок * 'Authorization: OAuth {token}' ко всем последующим запросам. * * @param {string | null} oauth - OAuth-токен для авторизации * * @remarks * - Если передать null, авторизация будет отключена * - Заголовок авторизации добавляется автоматически * - Токен сохраняется для всех последующих запросов * * @example * ```ts * const api = new YandexRequest(); * * // Установка нового токена * api.setOAuth('new-token'); * // Теперь все запросы будут с заголовком: * // Authorization: OAuth new-token * * // Сброс токена * api.setOAuth(null); * // Запросы будут без авторизации * ``` */ setOAuth(oauth: string | null): void; /** * Выполняет HTTP-запрос к API Яндекса * * Отправляет запрос к указанному эндпоинту API и * обрабатывает полученный ответ. * * @template T - Тип ожидаемого ответа, наследующий интерфейс IYandexApi * @param {string | null} [url=null] - URL-адрес эндпоинта API * @returns {Promise<T | null>} - Результат запроса или null в случае ошибки * * @throws {Error} Если произошла ошибка сети или сервера * * @example * ```ts * interface MyApiResponse extends IYandexApi { * data: { * id: string; * name: string; * }; * } * * const api = new YandexRequest('token'); * * try { * // Выполнение запроса * const response = await api.call<MyApiResponse>('...'); * * if (response) { * // Обработка успешного ответа * console.log('ID:', response.data.id); * console.log('Name:', response.data.name); * } else { * // Обработка ошибки API * console.error('Ошибка API:', api.#error); * } * } catch (error) { * // Обработка ошибок сети или сервера * console.error('Ошибка запроса:', error); * } * ``` */ call<T extends IYandexApi>(url?: string | null): Promise<T | null>; /** * Сохраняет информацию об ошибках в лог-файл * * Записывает детальную информацию об ошибке в файл логов, * включая время возникновения, URL запроса и текст ошибки. * * @param {string} [error=''] - Текст ошибки для логирования */ protected _log(error?: string): void; }