amocrm-client
Version:
JS Library for AmoCRM
69 lines (65 loc) • 2.71 kB
text/typescript
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
]);