UNPKG

amocrm-client

Version:
39 lines (36 loc) 1.84 kB
import { IAPIResponse, IRequestOptions } from "../interfaces/common"; import { IConnection } from "./Connection"; import { EventEmitter } from "./EventEmitter"; export interface IClientRequest { make<T>(method: string, url: string, data?: object, options?: IRequestOptions): Promise<IAPIResponse<T>>; get<T>(url: string, data?: object, options?: IRequestOptions): Promise<IAPIResponse<T>>; post<T>(url: string, data?: object, options?: IRequestOptions): Promise<IAPIResponse<T>>; patch<T>(url: string, data?: object, options?: IRequestOptions): Promise<IAPIResponse<T>>; delete<T>(url: string, options?: IRequestOptions): Promise<IAPIResponse<T>>; } /** * Компонент запросов к серверу. * Доступен как client.request * */ export class ClientRequest extends EventEmitter implements IClientRequest { protected readonly connection: IConnection; constructor(connection: IConnection) { super(); this.connection = connection; } make<T>(method: string, url: string, data?: object, options?: IRequestOptions) { return this.connection.makeRequest<T>(method, url, data, options); } get<T>(url: string, data?: object, options?: IRequestOptions) { return this.connection.makeRequest<T>('GET', url, data, options); } post<T>(url: string, data?: object, options?: IRequestOptions) { return this.connection.makeRequest<T>('POST', url, data, options); } patch<T>(url: string, data?: object, options?: IRequestOptions) { return this.connection.makeRequest<T>('PATCH', url, data, options); } delete<T>(url: string, options?: IRequestOptions | undefined): Promise<IAPIResponse<T>> { return this.connection.makeRequest<T>('DELETE', url, {}, options); } }