@hpcc-js/comms
Version:
hpcc-js - Communications
111 lines • 4.17 kB
JavaScript
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