UNPKG

amocrm-client

Version:
44 lines (33 loc) 1.65 kB
import schema from '../../schema/v4'; import { applyMixins } from "../../util"; import ResourceFactory from "../ResourceFactory"; import ResourcePagination from "../ResourcePagination"; import { IRequestOptions } from "../../interfaces/common"; import { IResourceFactory } from "../../interfaces/api"; import { hasGetByCriteria, hasCreate, hasGetById, hasUpdate } from "./mixins"; import { CompanyCriteria, CompanyCreateCriteria, CompanyUpdateCriteria } from '../../interfaces/company'; import { ICompany, Company } from '../models/Company'; import { CatalogElement, ICatalogElement } from '../models/CatalogElement'; export interface ICatalogElementFactory extends IResourceFactory<ICatalogElement> { get(criteria?: Partial<CompanyCriteria>, options?: IRequestOptions): Promise<ResourcePagination<ICompany>>; getById(identity: number, criteria?: Pick<CompanyCriteria, "with">, options?: IRequestOptions): Promise<ICompany | null>; create(criteria: (CompanyCreateCriteria | ICompany)[], options?: IRequestOptions): Promise<ICompany[]>; update(criteria: (CompanyUpdateCriteria | ICompany)[], options?: IRequestOptions): Promise<ICompany[]>; } export class BaseCatalogElementFactory extends ResourceFactory<ICatalogElement> { getEntityClass() { return CatalogElement; } getBaseUrl(): string { return schema.entities.catalogs.path; } getEmbeddedKey(): string { return 'elements'; } } export const CatalogElementFactory = applyMixins(BaseCatalogElementFactory, [ hasGetByCriteria, hasGetById, hasCreate, hasUpdate ]);