kentico-cloud-delivery
Version:
Official Kentico Cloud Delivery SDK
65 lines • 3.33 kB
JavaScript
exports.__esModule = true;
var rxjs_1 = require("rxjs");
var operators_1 = require("rxjs/operators");
var models_1 = require("./models");
var ObservableFactory = /** @class */ (function () {
function ObservableFactory() {
this.movieCodename = 'warrior';
this.taxonomyCodename = 'movietype';
this.typeCodename = 'movie';
this.elementCodename = 'title';
}
/**
* Gets single observable containing all test object types
* @param client
* @param queryConfig
*/
ObservableFactory.prototype.getAllTestObjects = function (client, queryConfig) {
var all = new models_1.AllTestObjects();
if (!queryConfig) {
queryConfig = {};
}
var observables = [];
var itemObs = client.item(this.movieCodename).queryConfig(queryConfig).getObservable().pipe(operators_1.map(function (r) { return all.item = r; }));
var itemsObs = client.items().queryConfig(queryConfig).getObservable().pipe(operators_1.map(function (r) { return all.items = r; }));
var taxonomyObs = client.taxonomy(this.taxonomyCodename).queryConfig(queryConfig).getObservable().pipe(operators_1.map(function (r) { return all.taxonomy = r; }));
var taxonomiesObs = client.taxonomies().queryConfig(queryConfig).getObservable().pipe(operators_1.map(function (r) { return all.taxonomies = r; }));
var typeObs = client.type(this.typeCodename).queryConfig(queryConfig).getObservable().pipe(operators_1.map(function (r) { return all.type = r; }));
var typesObs = client.types().queryConfig(queryConfig).getObservable().pipe(operators_1.map(function (r) { return all.types = r; }));
var elementObs = client.element(this.typeCodename, this.elementCodename).queryConfig(queryConfig).getObservable().pipe(operators_1.map(function (r) { return all.element = r; }));
observables.push(itemObs);
observables.push(itemsObs);
observables.push(taxonomyObs);
observables.push(taxonomiesObs);
observables.push(typeObs);
observables.push(typesObs);
observables.push(elementObs);
var zippedObservable = this.zipObservables(observables);
return zippedObservable.pipe(operators_1.map(function () { return all; }));
};
ObservableFactory.prototype.zipObservables = function (observables) {
if (!observables) {
throw Error("Given observables are not valid");
}
if (!Array.isArray(observables)) {
throw Error("Given observables are not in array");
}
if (observables.length === 0) {
throw Error("Observables array doesn't contain any observable");
}
if (observables.length === 1) {
return observables[0];
}
var zippedObservable = observables[0];
for (var i = 1; i < observables.length; i++) {
var currentObservable = observables[i];
zippedObservable = rxjs_1.zip(zippedObservable, currentObservable);
}
return zippedObservable;
};
return ObservableFactory;
}());
exports.ObservableFactory = ObservableFactory;
exports.observableFactory = new ObservableFactory();
//# sourceMappingURL=observable-factory.js.map
;