bling-erp-api-with-rate-limit
Version:
Pacote de integração com a API do Bling ERP
39 lines (38 loc) • 2.52 kB
TypeScript
import { AxiosInstance } from 'axios';
export type IDefaultParams = Record<string, number | number[] | string | string[] | boolean | Date | undefined>;
export type IDefaultHeaders = Record<string, string>;
export interface IDefaultOptions<IParams, IHeaders> {
endpoint: string;
params?: IParams;
headers?: IHeaders;
shouldIncludeHeadersInResponse?: true;
}
export interface IIndexOptions<IBody, IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> {
body?: IBody;
}
export interface IShowOptions<IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> {
id: string;
}
export interface IStoreOptions<IBody, IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> {
body: IBody;
}
export interface IUpdateOptions<IBody, IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> {
id: string;
body: IBody;
}
export interface IReplaceOptions<IBody, IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> {
id: string;
body: IBody;
}
export interface IDestroyOptions<IParams, IHeaders> extends IDefaultOptions<IParams, IHeaders> {
id: string;
}
export interface IBlingRepository {
readonly axiosInstance: AxiosInstance;
index: <IIndexBody, IIndexResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IIndexOptions<IIndexBody, IParams, IHeaders>) => Promise<IIndexResponse>;
show: <IShowResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IShowOptions<IParams, IHeaders>) => Promise<IShowResponse>;
store: <IStoreBody, IStoreResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IStoreOptions<IStoreBody, IParams, IHeaders>) => Promise<IStoreResponse>;
update: <IUpdateBody, IUpdateResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IUpdateOptions<IUpdateBody, IParams, IHeaders>) => Promise<IUpdateResponse>;
replace: <IReplaceBody, IReplaceResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IReplaceOptions<IReplaceBody, IParams, IHeaders>) => Promise<IReplaceResponse>;
destroy: <IDestroyResponse, IParams extends IDefaultParams = IDefaultParams, IHeaders extends IDefaultHeaders = IDefaultHeaders>(options: IDestroyOptions<IParams, IHeaders>) => Promise<IDestroyResponse>;
}