UNPKG

@hpcc-js/comms

Version:
111 lines 4.17 kB
import { __extends } from "tslib"; import { ESPExceptions, Service } from "../espConnection"; function jsonToIField(id, item) { var type = typeof item; switch (type) { case "boolean": case "number": case "string": return { id: id, type: type }; case "object": if (item.Row instanceof Array) { item = item.Row; } if (item instanceof Array) { return { id: id, type: "dataset", children: jsonToIFieldArr(item[0]) }; } else if (item instanceof Object) { if (item.Item && item.Item instanceof Array && item.Item.length === 1) { var fieldType = typeof item.Item[0]; if (fieldType === "string" || fieldType === "number") { return { id: id, type: "set", fieldType: fieldType }; } throw new Error("Unknown field type"); } return { id: id, type: "object", fields: jsonToIFieldObj(item) }; } // Fall through --- default: throw new Error("Unknown field type"); } } function jsonToIFieldArr(json) { if (json.Row && json.Row instanceof Array) { json = json.Row[0]; } var retVal = []; for (var key in json) { retVal.push(jsonToIField(key, json[key])); } return retVal; } function jsonToIFieldObj(json) { var fields = {}; for (var key in json) { fields[key] = jsonToIField(key, json[key]); } return fields; } var EclService = /** @class */ (function (_super) { __extends(EclService, _super); function EclService(optsConnection) { return _super.call(this, optsConnection, "WsEcl", "0") || this; } EclService.prototype.opts = function () { return this._connection.opts(); }; EclService.prototype.requestJson = function (querySet, queryId) { // http://192.168.3.22:8002/WsEcl/example/request/query/roxie/peopleaccounts/json?display return this._connection.send("example/request/query/".concat(querySet, "/").concat(queryId, "/json"), {}, "text").then(function (response) { var requestSchema = JSON.parse(response); for (var key in requestSchema) { return requestSchema[key]; } return {}; }).then(jsonToIFieldArr); }; EclService.prototype.responseJson = function (querySet, queryId) { // http://192.168.3.22:8002/WsEcl/example/response/query/roxie/peopleaccounts/json?display return this._connection.send("example/response/query/".concat(querySet, "/").concat(queryId, "/json"), {}, "text").then(function (response) { var responseSchema = JSON.parse(response); for (var key in responseSchema) { return responseSchema[key].Results; } return {}; }).then(function (resultsJson) { var retVal = {}; for (var key in resultsJson) { retVal[key] = jsonToIFieldArr(resultsJson[key]); } return retVal; }); }; EclService.prototype.submit = function (querySet, queryId, request) { // http://192.168.3.22:8002/WsEcl/submit/query/roxie/peopleaccounts.1/json var action = "submit/query/".concat(querySet, "/").concat(queryId); return this._connection.send(action, request, "json2").then(function (response) { if (response.Results && response.Results.Exception) { throw new ESPExceptions(action, request, { Source: "wsEcl.submit", Exception: response.Results.Exception }); } return response.Results; }); }; return EclService; }(Service)); export { EclService }; //# sourceMappingURL=wsEcl.js.map