amocrm-client
Version:
JS Library for AmoCRM
58 lines • 3.22 kB
JavaScript
"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