UNPKG

@hpcc-js/comms

Version:
84 lines 3.27 kB
import { ESPConnection, ESPExceptions } 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]) }; } // 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; } var EclService = /** @class */ (function () { function EclService(optsConnection) { this._connection = new ESPConnection(optsConnection, "WsEcl", "0"); } 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/" + querySet + "/" + 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/" + querySet + "/" + 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/" + querySet + "/" + 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; }()); export { EclService }; //# sourceMappingURL=wsEcl.js.map