# nqm-api-tdx
**Repository Path**: iorj/nqm-api-tdx
## Basic Information
- **Project Name**: nqm-api-tdx
- **Description**: nquiringminds Trusted Data Exchange command and query API interface for nodejs clients
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-04-04
- **Last Updated**: 2020-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# nqm-api-tdx
nquiringminds Trusted Data Exchange command and query API interface for nodejs clients
## install
```
npm install nqm-api-tdx
```
## test
```
mocha test
```
## include
### nodejs
```
var TDXApi = require("nqm-api-tdx");
```
### meteor
```
import TDXApi from "nqm-api-tdx/client-api"
```
### web page
Copy client-api.js (generated when you npm install) to your js directory then:
```
```
## usage
Include in the appropriate manner as shown above
```
var config = {
commandHost: "https://cmd.nqminds.com",
queryHost: "https://q.nqminds.com"
};
var nqmindsTDX = new TDXApi(config);
// Authenticate using token id and secret (from the toolbox)
nqmindsTDX.authenticate("myTokenID","myTokenSecret", function(err, accessToken) {
if (err) {
} else {
// Create a dataset.
nqmindsTDX.createDataset({ name: "foo", parentId: "xyzID", basedOnSchema: "dataset"}, function(err,id) {
});
// Update a dataset.
// Each of the properties below is optional. E.g. to rename a resource, simple supply the 'name' property,
// to rename and change the description, supply both 'name' and 'description'.
nqmindsTDX.updateDataset(
datasetId,
{
name: "new-foo",
tags: ["new", "tag"],
description: "new description",
meta: {new: "foo"}
},
function(err,id) {
}
);
// Aggregate query
nqmindsTDX.getAggregateData("", "pipeline", {options}, function(err, data) {
});
// Get data from dataset
nqmindsTDX.getDatasetData("", {filter}, {projection}, {options}, function(err, data) {
});
// Get data from dataset in newline delimited format
nqmindsTDX.getDatasetNDData("", {filter}, {projection}, {options}, function(err, data) {
});
// Get datasets that match filter
nqmindsTDX.getDatasets({filter}, {projection}, {options}, function(err,data) {
});
// Truncate -- careful!
nqmindsTDX.truncateDataset("", function(err, response) {
});
// Add data
nqmindsTDX.addDatasetData("",{data}, function(err, response) {
});
// Update data
nqmindsTDX.updateDatasetData("", {data}, function(err, response) {
});
// Update dataset data by query
nqmindsTDX.updateDatasetDataQuery("", {temperature: ${gt: 20}}, {status: "hot"}, function(err, response)) {
});
// Get distinct keys
nqmindsTDX.getDistinct("", "key", {filter}, {projection}, {options}, function(err, data) {
};
// Delete a dataset - very careful!
nqmindsTDX.deleteDataset("", function(err, response) {
});
// Delete dataset data
// {primaryKey: value}
// [{primaryKey1: value1}, {primaryKey2: value 2}]
nqmindsTDX.deleteDatasetData("", data, function(err, response)) {
});
// Delete dataset data by query
nqmindsTDX.deleteDatasetDataQuery("", {temperature: ${gt: 20}}, function(err, response)) {
});
// Download a raw file from resource id
nqmindsTDX.getRawFile("resourceId", function(err, response)) {
});
// Get count for dataset
nqmindsTDX.getDatasetDataCount("resourceId", {filter}, function(err, response) {
});
// Start a databot
const instanceData = {
name: "my databot instance",
shareKeyId: shareKeyId,
shareKeySecret: shareKeySecret,
authTokenTTL: authTokenTTL,
chunks: 1,
inputs: {
someInput1: 133,
someInput2: {
foo: "bar"
}
}
};
nqmindsTDX.startDatabotInstance(databotDefinitionId, instanceData, function(err, startResult) {
console.log("started databot instance id is %s", startResult.response.instanceId);
});
// Get databot instance status.
nqmindsTDX.getDatabotInstanceStatus(instanceId, function(err, statusResult) {
if (statusResult.status === "complete") {
console.log("databot instance %s is finished", instanceId);
} else {
console.log("databot instance %s status is %s", instanceId, statusResult.status);
}
});
}
});
```
Passing in an existing token:
```
var config = {
commandHost: "https://cmd.nqminds.com",
queryHost: "https://q.nqminds.com",
accessToken: "yourTokenGoesHere
};
```