UNPKG

amocrm-client

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