UNPKG

igniteui-webcomponents-datasources

Version:

Reference custom data providers for the Ignite UI Web Components data source.

921 lines (920 loc) 37.8 kB
import { __extends, __generator, __values } from "tslib"; import { AsyncVirtualDataSourceProviderWorker } from "igniteui-webcomponents-core"; import { SortDescriptionCollection } from "igniteui-webcomponents-core"; import { ODataVirtualDataSourceProviderTaskDataHolder } from "./ODataVirtualDataSourceProviderTaskDataHolder"; import { AsyncDataSourcePageTaskHolder } from "igniteui-webcomponents-core"; import { AsyncVirtualDataTask } from "igniteui-webcomponents-core"; import { ODataDataSourcePage } from "./ODataDataSourcePage"; import { DefaultSectionInformation } from "igniteui-webcomponents-core"; import { Convert } from "igniteui-webcomponents-core"; import { ODataSchemaProvider } from "./ODataSchemaProvider"; import { ODataDataSourceFilterExpressionVisitor } from "igniteui-webcomponents-core"; import { ListSortDirection } from "igniteui-webcomponents-core"; import { stringIsNullOrEmpty } from "igniteui-webcomponents-core"; import { DataSourceSummaryOperand } from "igniteui-webcomponents-core"; import { DataSourceSummaryScope } from "igniteui-webcomponents-core"; import { DefaultSummaryResult } from "igniteui-webcomponents-core"; import { TransactionType } from "igniteui-webcomponents-core"; import { ODataDataSourceSchema } from "igniteui-webcomponents-core"; export var ODataVirtualDataSourceDataProviderWorker = /** @class */ /*@__PURE__*/ (function (_super) { __extends(ODataVirtualDataSourceDataProviderWorker, _super); function ODataVirtualDataSourceDataProviderWorker(settings) { var e_1, _a; var _this = _super.call(this, settings) || this; _this._baseUri = null; _this._entitySet = null; _this._sortDescriptions = null; _this._groupDescriptions = null; _this._filterExpressions = null; _this._summaryDescriptions = null; _this._desiredPropeties = null; _this._schemaIncludedProperties = null; _this._enableJsonp = true; _this._isAggregationSupported = false; _this._groupInformation = null; _this._summaryInformation = null; _this._filterString = null; _this._selectedString = null; _this.doWork = _this.doWork.bind(_this); _this._baseUri = settings.baseUri; _this._entitySet = settings.entitySet; _this._sortDescriptions = settings.sortDescriptions; _this._groupDescriptions = settings.groupDescriptions; if (_this._groupDescriptions != null && _this._groupDescriptions.size() > 0) { _this._sortDescriptions = new SortDescriptionCollection(); try { for (var _b = __values(_this.iter(settings.sortDescriptions)), _c = _b.next(); !_c.done; _c = _b.next()) { var sd = _c.value; _this._sortDescriptions.add(sd); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } for (var i = 0; i < _this._groupDescriptions.size(); i++) { _this._sortDescriptions.insert(i, _this._groupDescriptions.get(i)); } } _this._filterExpressions = settings.filterExpressions; _this._desiredPropeties = settings.propertiesRequested; if (settings.schemaIncludedProperties != null) { _this._schemaIncludedProperties = new Set(); for (var i = 0; i < settings.schemaIncludedProperties.length; i++) { _this._schemaIncludedProperties.add(settings.schemaIncludedProperties[i]); } } _this._summaryDescriptions = settings.summaryDescriptions; _this._summaryScope = settings.summaryScope; _this._enableJsonp = settings.enableJsonp; _this._isAggregationSupported = settings.isAggregationSupported; window.setTimeout(_this.doWork, 100); return _this; } Object.defineProperty(ODataVirtualDataSourceDataProviderWorker.prototype, "sortDescriptions", { get: function () { return this._sortDescriptions; }, enumerable: false, configurable: true }); Object.defineProperty(ODataVirtualDataSourceDataProviderWorker.prototype, "filterExpressions", { get: function () { return this._filterExpressions; }, enumerable: false, configurable: true }); Object.defineProperty(ODataVirtualDataSourceDataProviderWorker.prototype, "desiredProperties", { get: function () { return this._desiredPropeties; }, enumerable: false, configurable: true }); ODataVirtualDataSourceDataProviderWorker.prototype.initialize = function () { _super.prototype.initialize.call(this); }; ODataVirtualDataSourceDataProviderWorker.prototype.getTaskDataHolder = function () { var holder = new ODataVirtualDataSourceProviderTaskDataHolder(); return holder; }; ODataVirtualDataSourceDataProviderWorker.prototype.getCompletedTaskData = function (holder, completed) { _super.prototype.getCompletedTaskData.call(this, holder, completed); }; ODataVirtualDataSourceDataProviderWorker.prototype.removeCompletedTaskData = function (holder, completed) { _super.prototype.removeCompletedTaskData.call(this, holder, completed); }; ODataVirtualDataSourceDataProviderWorker.prototype.getTasksData = function (holder) { _super.prototype.getTasksData.call(this, holder); }; ODataVirtualDataSourceDataProviderWorker.prototype.iter = function (coll) { var i; return __generator(this, function (_a) { switch (_a.label) { case 0: i = 0; _a.label = 1; case 1: if (!(i < coll.size())) return [3 /*break*/, 4]; return [4 /*yield*/, coll.get(i)]; case 2: _a.sent(); _a.label = 3; case 3: i++; return [3 /*break*/, 1]; case 4: return [2 /*return*/]; } }); }; ODataVirtualDataSourceDataProviderWorker.prototype.iterFilter = function (coll) { var i; return __generator(this, function (_a) { switch (_a.label) { case 0: i = 0; _a.label = 1; case 1: if (!(i < coll.size())) return [3 /*break*/, 4]; return [4 /*yield*/, coll.get(i)]; case 2: _a.sent(); _a.label = 3; case 3: i++; return [3 /*break*/, 1]; case 4: return [2 /*return*/]; } }); }; ODataVirtualDataSourceDataProviderWorker.prototype.iterSummaries = function (summaries) { var i; return __generator(this, function (_a) { switch (_a.label) { case 0: i = 0; _a.label = 1; case 1: if (!(i < summaries.size())) return [3 /*break*/, 4]; return [4 /*yield*/, summaries.get(i)]; case 2: _a.sent(); _a.label = 3; case 3: i++; return [3 /*break*/, 1]; case 4: return [2 /*return*/]; } }); }; ODataVirtualDataSourceDataProviderWorker.prototype.processCompletedTask = function (completedTask, currentDelay, pageIndex, taskDataHolder) { var _this = this; var h = taskDataHolder; var schema = null; var result = null; var schemaFetchCount = -1; var task = completedTask.task; try { if (task.hasErrors) { this.retryIndex(pageIndex, currentDelay); return; } if (pageIndex == ODataVirtualDataSourceDataProviderWorker.schemaRequestIndex) { result = task.result; schemaFetchCount = (result['@odata.count']); } else { result = task.result; } } catch (e) { this.retryIndex(pageIndex, currentDelay); return; } if (schemaFetchCount >= 0) { this.actualCount = schemaFetchCount; } else { this.actualCount = (result['@odata.count']); } schema = this.actualSchema; if (schema == null) { var requests_1 = 0; this.resolveSchema(function (s) { // resolveSchema success callback _this.actualSchema = s; if (_this._isAggregationSupported && (_this._groupDescriptions.size() !== 0 || _this._summaryDescriptions.size() !== 0)) { if (_this._groupDescriptions.size() > 0) { requests_1++; _this.resolveGroupInformation(function (g) { // group info success requests_1--; if (requests_1 === 0) { _this.finishProcessingCompletedTask(task, pageIndex, s, result); } }, function () { // group info failure _this.retryIndex(pageIndex, currentDelay); return; }); } if (_this._summaryDescriptions.size() > 0) { requests_1++; _this.resolveSummaryInformation(function (g) { // summary info success requests_1--; if (requests_1 === 0) { _this.finishProcessingCompletedTask(task, pageIndex, s, result); } }, function () { // summary info failure _this.retryIndex(pageIndex, currentDelay); return; }); } } else { _this.finishProcessingCompletedTask(task, pageIndex, s, result); } }, function () { // resolveSchema failure callback _this.retryIndex(pageIndex, currentDelay); return; }); return; } this.finishProcessingCompletedTask(task, pageIndex, schema, result); }; ODataVirtualDataSourceDataProviderWorker.prototype.finishProcessingCompletedTask = function (task, pageIndex, schema, result) { var _this = this; var executionContext; var pageLoaded; var groupInformation; var summaryInformation; this.actualSchema = schema; executionContext = this.executionContext; groupInformation = this._groupInformation; summaryInformation = this._summaryInformation; pageLoaded = this.pageLoaded; var page = null; if (result != null) { page = new ODataDataSourcePage(result, schema, groupInformation, summaryInformation, pageIndex); if (!this.isLastPage(pageIndex) && page.count() > 0 && !this.populatedActualPageSize) { this.populatedActualPageSize = true; this.actualPageSize = page.count(); } } else { page = new ODataDataSourcePage(null, schema, groupInformation, summaryInformation, pageIndex); } if (this.pageLoaded != null) { if (this.executionContext != null) { if (executionContext == null || pageLoaded == null) { this.shutdown(); return; } executionContext.execute(function () { return pageLoaded(page, _this.actualCount, _this.actualPageSize); }); } else { if (pageLoaded == null) { this.shutdown(); return; } pageLoaded(page, this.actualCount, this.actualPageSize); } } }; ODataVirtualDataSourceDataProviderWorker.prototype.resolveGroupInformation = function (finishAction, failureAction) { var e_2, _a; var _this = this; if (this._groupInformation != null) { finishAction(this._groupInformation); return; } var orderBy = ""; var groupBy = ""; var filter = null; var summary = ""; if (this._groupDescriptions == null || this._groupDescriptions.size() == 0) { finishAction(null); return; } filter = this._filterString; this.updateFilterString(); if (this._groupDescriptions != null) { var first1 = true; try { for (var _b = __values(this.iter(this._groupDescriptions)), _c = _b.next(); !_c.done; _c = _b.next()) { var group = _c.value; if (first1) { first1 = false; } else { orderBy += ", "; groupBy += ", "; } groupBy += group.propertyName; if (group.direction === ListSortDirection.Descending) { orderBy += group.propertyName + " desc"; } else { orderBy += group.propertyName + " asc"; } } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_2) throw e_2.error; } } } if (this._summaryScope === DataSourceSummaryScope.Both || this._summaryScope === DataSourceSummaryScope.Groups) { var summaryParameters = this.getSummaryQueryParameters(true); if (!stringIsNullOrEmpty(summaryParameters)) { summary = ", " + summaryParameters; } } var commandText = this._entitySet + "?$orderby=" + orderBy + "&$apply="; if (!stringIsNullOrEmpty(filter)) { commandText += "filter(" + filter + ")/"; } commandText += "groupby((" + groupBy + "), aggregate($count as $__count" + summary + "))"; try { var groupInformation_1 = []; var success_1 = function (data, response) { return _this.groupSuccess(data, response, finishAction, failureAction, groupInformation_1); }; var failure_1 = function (err) { return _this.groupError(err, finishAction, failureAction, groupInformation_1); }; var run_ = null; var headers = { 'Content-Type': 'application/json', Accept: 'application/json' }; var request = { requestUri: this._baseUri + "/" + commandText, enableJsonpCallback: this._enableJsonp, method: 'GET', headers: headers, data: null }; run_ = function () { odatajs.oData.request(request, success_1, failure_1); }; run_(); } catch (e) { failureAction(); } }; ODataVirtualDataSourceDataProviderWorker.prototype.groupError = function (err, finishAction, failureAction, groupInformation) { this._groupInformation = null; }; ODataVirtualDataSourceDataProviderWorker.prototype.groupSuccess = function (data, response, finishAction, failureAction, groupInformation) { var e_3, _a; var groupNames = []; try { for (var _b = __values(this.iter(this._groupDescriptions)), _c = _b.next(); !_c.done; _c = _b.next()) { var group = _c.value; groupNames.push(group.propertyName); } } catch (e_3_1) { e_3 = { error: e_3_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_3) throw e_3.error; } } var groupNamesArray = groupNames; if (data && data.value && data.value.length > 0) { var currentIndex = 0; for (var i = 0; i < data.value.length; i++) { this.addGroup(groupInformation, groupNames, groupNames, currentIndex, data.value[i]); } } this._groupInformation = groupInformation; finishAction(this._groupInformation); }; ODataVirtualDataSourceDataProviderWorker.prototype.addGroup = function (groupInformation, groupNames, groupNamesArray, currentIndex, group) { var e_4, _a; var groupValues = []; try { for (var groupNames_1 = __values(groupNames), groupNames_1_1 = groupNames_1.next(); !groupNames_1_1.done; groupNames_1_1 = groupNames_1.next()) { var name_1 = groupNames_1_1.value; if (group[name_1]) { groupValues.push(group[name_1]); } } } catch (e_4_1) { e_4 = { error: e_4_1 }; } finally { try { if (groupNames_1_1 && !groupNames_1_1.done && (_a = groupNames_1.return)) _a.call(groupNames_1); } finally { if (e_4) throw e_4.error; } } var groupCount = 0; if (group["$__count"]) { groupCount = Convert.toInt321(group["$__count"]); } var summaryResults = null; if (this._summaryScope == DataSourceSummaryScope.Both || this._summaryScope == DataSourceSummaryScope.Groups) { summaryResults = this.createSummaryResults(group); } var groupInfo = new DefaultSectionInformation(currentIndex, currentIndex + (groupCount - 1), groupNamesArray, groupValues, summaryResults); groupInformation.push(groupInfo); }; ODataVirtualDataSourceDataProviderWorker.prototype.resolveSummaryInformation = function (finishAction, failureAction) { var _this = this; if (this._summaryInformation != null) { finishAction(this._summaryInformation); return; } var filter = null; var summary = null; if (this._summaryDescriptions == null || this._summaryDescriptions.size() == 0 || this._summaryScope == DataSourceSummaryScope.Groups || this._summaryScope == DataSourceSummaryScope.None) { finishAction(null); return; } filter = this._filterString; this.updateFilterString(); summary = this.getSummaryQueryParameters(false); var commandText = this._entitySet + "?$apply="; if (!stringIsNullOrEmpty(filter)) { commandText += "filter(" + filter + ")/"; } commandText += "aggregate(" + summary + ")"; try { var summaryInformation_1 = []; var success_2 = function (data, response) { return _this.summarySuccess(data, response, finishAction, failureAction, summaryInformation_1); }; var failure_2 = function (err) { return _this.summaryError(err, finishAction, failureAction, summaryInformation_1); }; var run_ = null; var headers = { 'Content-Type': 'application/json', Accept: 'application/json' }; var request = { requestUri: this._baseUri + "/" + commandText, enableJsonpCallback: this._enableJsonp, method: 'GET', headers: headers, data: null }; run_ = function () { odatajs.oData.request(request, success_2, failure_2); }; run_(); } catch (e) { failureAction(); } }; ODataVirtualDataSourceDataProviderWorker.prototype.summarySuccess = function (data, response, finishAction, failureAction, summaryInformation) { if (data && data.value && data.value.length > 0) { summaryInformation = this.createSummaryResults(data.value[0]); } this._summaryInformation = summaryInformation; finishAction(this._summaryInformation); }; ODataVirtualDataSourceDataProviderWorker.prototype.summaryError = function (err, finishAction, failureAction, summaryInformation) { this._summaryInformation = null; }; ODataVirtualDataSourceDataProviderWorker.prototype.getSummaryQueryParameters = function (ignoreCount) { var e_5, _a; var result = ""; if (this._summaryDescriptions != null) { var first = true; var countExists = false; try { for (var _b = __values(this.iterSummaries(this._summaryDescriptions)), _c = _b.next(); !_c.done; _c = _b.next()) { var summary = _c.value; if (summary.operand == DataSourceSummaryOperand.Count && (ignoreCount || countExists)) { continue; } if (!first) { result += ", "; } switch (summary.operand) { case DataSourceSummaryOperand.Average: result += summary.propertyName + " with average as " + summary.propertyName + "Average"; break; case DataSourceSummaryOperand.Min: result += summary.propertyName + " with min as " + summary.propertyName + "Min"; break; case DataSourceSummaryOperand.Max: result += summary.propertyName + " with max as " + summary.propertyName + "Max"; break; case DataSourceSummaryOperand.Sum: result += summary.propertyName + " with sum as " + summary.propertyName + "Sum"; break; case DataSourceSummaryOperand.Count: result += "$count as $__count"; countExists = true; break; } first = false; } } catch (e_5_1) { e_5 = { error: e_5_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_5) throw e_5.error; } } } return result; }; ODataVirtualDataSourceDataProviderWorker.prototype.createSummaryResults = function (data) { var e_6, _a; var summaryResults = []; try { for (var _b = __values(this.iterSummaries(this._summaryDescriptions)), _c = _b.next(); !_c.done; _c = _b.next()) { var summary = _c.value; var summaryName = summary.propertyName; switch (summary.operand) { case DataSourceSummaryOperand.Average: summaryName += "Average"; break; case DataSourceSummaryOperand.Min: summaryName += "Min"; break; case DataSourceSummaryOperand.Max: summaryName += "Max"; break; case DataSourceSummaryOperand.Sum: summaryName += "Sum"; break; case DataSourceSummaryOperand.Count: summaryName = "$__count"; break; } var summaryValue = null; if (data && data[summaryName]) { summaryValue = data[summaryName]; } var summaryResult = new DefaultSummaryResult(summary.propertyName, summary.operand, summaryValue); summaryResults.push(summaryResult); } } catch (e_6_1) { e_6 = { error: e_6_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_6) throw e_6.error; } } return summaryResults; }; ODataVirtualDataSourceDataProviderWorker.prototype.resolveSchema = function (finishAction, failureAction) { var _this = this; var success_ = function (res) { var sp = new ODataSchemaProvider(res); var schema = sp.getODataDataSourceSchema(_this._entitySet); if (_this._schemaIncludedProperties != null) { var propertyNames = []; var propertyTypes = []; for (var i = 0; i < schema.propertyNames.length; i++) { if (!_this._schemaIncludedProperties.has(schema.propertyNames[i])) { continue; } propertyNames.push(schema.propertyNames[i]); propertyTypes.push(schema.propertyTypes[i]); } schema = new ODataDataSourceSchema(propertyNames, propertyTypes, schema.primaryKey); } finishAction(schema); }; var failure_ = function () { return failureAction(); }; var baseUri_ = this._baseUri; var request = new XMLHttpRequest(); request.onreadystatechange = function () { if (request.readyState === 4) { if (request.status === 200) { success_(request.responseText); } else { failure_(); } } }; request.open('Get', baseUri_ + '/$metadata'); request.send(); ; }; ODataVirtualDataSourceDataProviderWorker.prototype.makeTaskForRequest = function (request, retryDelay) { var e_7, _a; var actualPageSize = 0; var sortDescriptions = null; actualPageSize = this.actualPageSize; sortDescriptions = this.sortDescriptions; var requestUrl = this._baseUri; requestUrl += "/" + this._entitySet; var queryStarted = false; this.updateFilterString(); if (this._filterString != null) { if (!queryStarted) { queryStarted = true; requestUrl += "?"; } else { requestUrl += "&"; } requestUrl += "$filter=" + this._filterString; } if (this.sortDescriptions != null) { var sortString = null; try { for (var _b = __values(this.iter(this.sortDescriptions)), _c = _b.next(); !_c.done; _c = _b.next()) { var sort = _c.value; if (sortString == null) { sortString = ""; } else { sortString += ", "; } if (sort.direction == ListSortDirection.Descending) { sortString += sort.propertyName + " desc"; } else { sortString += sort.propertyName; } } } catch (e_7_1) { e_7 = { error: e_7_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_7) throw e_7.error; } } if (sortString != null) { if (!queryStarted) { queryStarted = true; requestUrl += "?"; } else { requestUrl += "&"; } requestUrl += "$orderby=" + sortString; } } if (this.desiredProperties != null && this.desiredProperties.length > 0) { var selectString = ""; var first = true; var $t = this.desiredProperties; for (var i = 0; i < $t.length; i++) { var select = $t[i]; if (first) { first = false; } else { selectString += ", "; } selectString += select; } if (!queryStarted) { queryStarted = true; requestUrl += "?"; } else { requestUrl += "&"; } requestUrl += "$select=" + selectString; } var task = new AsyncVirtualDataTask(); if (request.index == ODataVirtualDataSourceDataProviderWorker.schemaRequestIndex) { this.executeRequest(requestUrl, queryStarted, 0, actualPageSize, task); } else { this.executeRequest(requestUrl, queryStarted, request.index * actualPageSize, actualPageSize, task); } request.taskHolder = new AsyncDataSourcePageTaskHolder(); request.taskHolder.task = task; this.tasks.add(request); }; ODataVirtualDataSourceDataProviderWorker.prototype.updateFilterString = function () { var e_8, _a; if (this.filterExpressions != null && this.filterExpressions.size() > 0 && this._filterString == null) { var sb = ""; var first = true; try { for (var _b = __values(this.iterFilter(this.filterExpressions)), _c = _b.next(); !_c.done; _c = _b.next()) { var expr = _c.value; if (first) { first = false; } else { sb += " AND "; } var visitor = new ODataDataSourceFilterExpressionVisitor(0); visitor.visit(expr); var txt = visitor.toString(); if (this.filterExpressions.size() > 1) { txt = "(" + txt + ")"; } sb += (txt); } } catch (e_8_1) { e_8 = { error: e_8_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_8) throw e_8.error; } } this._filterString = sb; } }; ODataVirtualDataSourceDataProviderWorker.prototype.executeRequest = function (requestUrl, queryStarted, skip, top, task) { var _this = this; if (!queryStarted) { queryStarted = true; requestUrl += "?"; } else { requestUrl += "&"; } requestUrl += "$skip=" + skip + "&$top=" + top + "&$count=true"; var requestUrl_ = requestUrl; var self_ = this; var success_ = function (data, response) { return _this.success(task, data, response); }; var failure_ = function (err) { return _this.error(task, err); }; var run_ = null; var headers = { 'Content-Type': 'application/json', Accept: 'application/json' }; var request = { requestUri: requestUrl_, enableJsonpCallback: this._enableJsonp, method: 'GET', headers: headers, data: null }; run_ = function () { odatajs.oData.request(request, success_, failure_); }; task.run = run_; }; ODataVirtualDataSourceDataProviderWorker.prototype.success = function (t, data, response) { t.result = data; t.isCompleted = true; }; ODataVirtualDataSourceDataProviderWorker.prototype.error = function (t, result) { t.isCompleted = true; t.hasErrors = true; }; ODataVirtualDataSourceDataProviderWorker.prototype.createBatchRequest = function (changes) { var requests = []; for (var i = 0; i < changes.length; i++) { var c = changes[i]; var headers = { "Content-Type": "application/json", "odata-version": "4.0" }; if (c.transactionType === TransactionType.Add) { requests.push({ method: "POST", id: "r".concat(i), atomicityGroup: "g1", url: "".concat(this._baseUri, "/").concat(this._entitySet), headers: headers, body: c.value, }); } else if (c.transactionType === TransactionType.Update) { if (c.version) { headers["If-Match"] = c.version; } requests.push({ method: "PATCH", id: "r".concat(i), atomicityGroup: "g1", url: "".concat(this._baseUri, "/").concat(this.getRequestUriWithKey(c.id)), headers: headers, body: c.value, }); } else if (c.transactionType === TransactionType.Delete) { if (c.version) { headers["If-Match"] = c.version; } requests.push({ method: "DELETE", id: "r".concat(i), atomicityGroup: "g1", url: "".concat(this._baseUri, "/").concat(this.getRequestUriWithKey(c.id)), headers: headers, }); } } var request = { requestUri: "".concat(this._baseUri, "/$batch"), method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ requests: requests }) }; var self = this; odatajs.oData.request(request, function (data) { if (data && data.responses) { if (data.responses.length > 0) { var success = true; var messages = []; var _loop_1 = function (i) { if (data.responses[i].status !== 200 && data.responses[i].status !== 204) { success = false; var failedRequest = requests.filter(function (r) { return r.id == data.responses[i].id; })[0]; if (failedRequest) { var msg = "".concat(failedRequest.method, " request failed with code ").concat(data.responses[i].status); messages.push(msg); console.error(msg); } return "break"; } }; for (var i = 0; i < data.responses.length; i++) { var state_1 = _loop_1(i); if (state_1 === "break") break; } if (success) { self.batchCompleted(true, true, null); } else { self.batchCompleted(false, true, messages); } } else { self.batchCompleted(false, true, null); } } }, function (error) { var messages = []; if (error && error.message) { messages.push(error.message); } self.batchCompleted(false, true, messages); }); }; ODataVirtualDataSourceDataProviderWorker.prototype.getRequestUriWithKey = function (key) { var result = ""; var keys = Object.keys(key); for (var i = 0; i < keys.length; i++) { if (i > 0) { result += ","; } result += "".concat(keys[i], "=").concat(key[keys[i]]); } return "".concat(this._entitySet, "(").concat(result, ")"); }; ODataVirtualDataSourceDataProviderWorker.schemaRequestIndex = -1; return ODataVirtualDataSourceDataProviderWorker; }(AsyncVirtualDataSourceProviderWorker));