UNPKG

amocrm-client

Version:
69 lines (65 loc) 2.71 kB
import { TConstructor } from "../../types"; import { IRequestOptions } from "../../interfaces/common"; import { ICompanyFactory } from "../factories/CompanyFactory"; import { IResourceEntity } from "../../interfaces/api"; import { applyMixins } from "../../util"; import { hasSave } from "./mixins/hasSave"; import { hasFetch } from "./mixins/hasFetch"; import { hasCreate } from "./mixins/hasCreate"; import { hasUpdate } from "./mixins/hasUpdate"; import { CompanyCriteria, ICompanyAttributes } from "../../interfaces/company"; import { CompanyDTO } from "../../dto/company.dto"; export interface ICompany extends IResourceEntity<ICompanyFactory>, ICompanyAttributes { /** * Добавляет сущность на портал AmoCRM * @example * ```ts * const company = new client.Company({ * name: "Walter White" * }); * await company.create(); * ``` * @example * ```ts * const company = new client.Company; * company.name = "Walter White"; * await company.create(); * ``` * @returns ссылка на созданную сущность * */ create(options?: IRequestOptions): Promise<ICompany>; /** * Обновляет сущность на портале AmoCRM. * @param options настройки запроса и обработки результата * @example * ```ts * const company = await client.companies.getById(123); * company.name = "Walter White"; * await company.update(); * ``` * @returns ссылка на обновлённую сущность * */ update(options?: IRequestOptions): Promise<ICompany>; /** * Создаёт или сохраняет сущность, в зависимости от результата {@link isNew()} * @param options настройки запроса и обработки результата * */ save(options?: IRequestOptions): Promise<ICompany>; /** * Получает содержимое сущности на портале * @param criteria фильтр для уточнения результатов запроса * @param options настройки запроса и обработки результата * @example * ```ts * const company = new client.Company({ id: 123 }); * await company.fetch(); * ``` * */ fetch(criteria?: CompanyCriteria, options?: IRequestOptions): Promise<ICompany>; } export const Company: TConstructor<ICompany> = applyMixins(CompanyDTO, [ hasCreate, hasUpdate, hasSave, hasFetch ]);