amocrm-client
Version:
JS Library for AmoCRM
50 lines (49 loc) • 2.53 kB
TypeScript
import { EventEmitter, IEventEmitter } from "./EventEmitter";
import { IAPIResponse, IRequestOptions } from "../interfaces/common";
import { IToken } from "./Token";
import { IEnvironment } from "./Environment";
import { IAuthServer } from "./AuthServer";
import { IAuth } from "./Auth";
export interface IConnection extends IEventEmitter {
update(): Promise<boolean>;
isTokenExpired(): boolean;
connect(): Promise<boolean>;
makeRequest<T>(method: string, url: string, data?: object, options?: IRequestOptions): Promise<IAPIResponse<T>>;
}
/**
* Компонент управления соединением с порталом
* Доступен как client.connection
* */
export declare class Connection extends EventEmitter implements IConnection {
protected readonly token: IToken;
protected readonly environment: IEnvironment;
protected readonly auth: IAuth;
protected connected: boolean;
protected authServer: IAuthServer | null;
constructor(environment: IEnvironment, token: IToken, auth: IAuth);
/**
* При отсуствии OAuth-токена пытается его получить
* При устаревшем OAuth-токене пытается его обновить
* */
update(): Promise<boolean>;
/**
* Проверяет, не истёк ли токен авторизации
* */
isTokenExpired(): boolean;
/**
* Устанавливает соединение с порталом
* При наличии сервера авторизации, пытается через него получить код авторизации
* При наличии кода, пытается получить OAuth-токен
* */
connect(): Promise<boolean>;
/**
* Запускает сервер авторизации и ожидает перехода пользователя
* по OAuth-адресу. Адрес можно получить с помощью {@link Auth.getUrl | client.auth.getUrl}
* */
protected waitForUserAction(): Promise<boolean>;
/**
* Формирует запрос к порталу. Предварительно проверяет наличие соединения
* При его отсутствии пытается его установить
* */
makeRequest<T>(method: string, url: string, data?: object, options?: IRequestOptions): Promise<IAPIResponse<T>>;
}