amocrm-client
Version:
JS Library for AmoCRM
96 lines (80 loc) • 2.27 kB
text/typescript
import * as http from 'http';
import { IUser } from '../api/models/User';
import { TStringValueObject } from "../types";
import { ICriteria, IResourceEntity } from './api';
import { UserCriteria } from './user';
export interface ITokenOptions {
client_id: string;
client_secret: string;
redirect_uri: string;
code?: string;
}
export interface IAuthOptions extends ITokenOptions {
state?: string;
server?: {
port?: number;
}
}
export interface IClientOptions {
[index: string]: string | object;
domain: string;
auth: IAuthOptions;
}
export interface ITokenData {
token_type: string;
expires_in: number;
access_token: string;
refresh_token: string;
expires_at?: number
}
export interface IRequestOptions {
headers?: TStringValueObject;
useFormData?: boolean;
parser?: IResponseParser<string>;
}
export interface IDomainRequestOptions {
domain: string,
method: string;
url: string;
data?: object;
options?: IRequestOptions;
token?: ITokenData;
}
export interface IAPIResponse<T> {
response: http.IncomingMessage,
data: T
}
export interface IAuthServerOptions {
state?: string;
port: number;
}
export interface IAuthUrlParams {
client_id: string;
mode: string;
state?: string;
}
export interface IAPIResponseErrorValue {
hint: string;
title: string;
type: string;
status: number;
detail: string;
}
export interface IResponseParser<T> {
parse<R>(result: IAPIResponse<T>): IAPIResponse<R>;
}
export interface RangeFilter {
from?: number | string;
to?: number | string;
}
export interface StatusFilter {
pipeline_id: number;
status_id: number;
}
export interface CustomFieldFilter {
[index: number]: Array<number | string | RangeFilter>
}
type Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N ? Acc[number] : Enumerate<N, [...Acc, Acc['length']]>
export type IntRange<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>
export type PartialWithRequired<T, K extends keyof T> = Pick<T, K> & Partial<T>;
export type Moment = moment.Moment;