UNPKG

amocrm-client

Version:
58 lines 3.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hasCompanies = void 0; const tslib_1 = require("tslib"); const ResourceCollection_1 = require("../../ResourceCollection"); const CatalogFactory_1 = require("../../factories/CatalogFactory"); const CatalogElementFactory_1 = require("../../factories/CatalogElementFactory"); function hasCompanies(Base) { return class HasCatalogs extends Base { catalogs(criteria, options) { return tslib_1.__awaiter(this, void 0, void 0, function* () { let _embedded = this._embedded; if (!this._embedded && !this.id) return false; if (this.id && !this._embedded) { const entity = yield this.getFactory().getById(this.id, { with: "catalog_elements" }); if (entity == null) return false; _embedded = entity._embedded; } const embeddedElements = _embedded.catalog_elements; if (embeddedElements.size() === 0) return new ResourceCollection_1.ResourceCollection(); if (_embedded.catalogs != undefined) return _embedded.catalogs; const catalogsIds = embeddedElements.map((element) => element.metadata != undefined ? element.metadata.catalog_id : element.catalog_id).all(); const catalogFactory = new CatalogFactory_1.CatalogFactory(this.getFactory().getRequest()); const data = yield (yield catalogFactory.get(Object.assign(criteria || {}, { limit: 250 }), options)).getData(); const catalogs = data.filter((catalog) => catalogsIds.includes(catalog.id)); this._embedded.catalogs = catalogs; return catalogs; }); } catalogElements(criteria, options) { return tslib_1.__awaiter(this, void 0, void 0, function* () { let _embedded = this._embedded; if (!this._embedded && !this.id) return false; if (this.id && !this._embedded) { const entity = yield this.getFactory().getById(this.id, { with: "catalog_elements" }); if (entity == null) return false; _embedded = entity._embedded; } const embeddedElements = _embedded.catalog_elements; if (embeddedElements.size() === 0) return []; if (Object.keys(embeddedElements.first()).length > 5) return embeddedElements; const catalogElementsIds = new ResourceCollection_1.ResourceCollection(embeddedElements.pluck("id")).chunk(250).all(); const catalogElements = new ResourceCollection_1.ResourceCollection([]); const catalogElementFactory = new CatalogElementFactory_1.CatalogElementFactory(this.getFactory().getRequest()); }); } }; } exports.hasCompanies = hasCompanies; //# sourceMappingURL=hasCatalogElements.js.map