tuko
v1.1.0
Published
Promise based Node client for Geckoboard's dataset API
Downloads
2
Readme
tuko
- Promise based Node >= 6.0.0 module for Geckoboard's datasets API.
- tuko is the Waray word for gecko
- Uses only standard library dependencies!
tl;dr;
const tuko = require('tuko');
const gb = tuko(process.env.GECKOBOARD_API_KEY);
const id = 'space.cargo.mrr';
gb.create(id, {
fields: {
mrr: { type: 'money', currency_code: 'USD' },
date: { type: 'date' },
}
})
.then(() => gb.update(id, {
data: [
{ mrr: 4307200, date: '2016-06-01' },
{ mrr: 4401550, date: '2016-07-01' },
{ mrr: 4508333, date: '2016-08-01' },
]
}))
.catch(console.error);
Detail
Install: npm i tuko -S
Require:
The import returns a function that expects your Geckoboard API key which returns the client.
const gb = require('tuko')(GECKOBOARD_API_KEY);
API
Methods:
ping()
create(id, schema)
update(id, data)
append(id, data)
del(id)
.ping()
Sends a GET request to the datasets API root to check if all is well (e.g. with your API key)
gb.ping().then(() => console.log('All is well'));
.create(id, schema)
Create a new dataset. id
is a string, and schema
is an object with a fields
property:
gb.create('rainbows', {
fields: {
date: { type: 'date', name: 'date' },
count: { type: 'number', name: 'count' },
},
})
.then(res => console.log(res));
.update(id, data)
Replace all the data in a dataset with data
. id
is the dataset's string name, and data
is an object with a data
property with an array value:
gb.update('rainbows', {
data: [
{ date: '2016-07-09', count: 100 },
],
})
.then(res => console.log(res));
.append(id, data)
Append new data to the dataset. id
is the dataset's string name, and data
is an object with a data
property with an array value:
gb.append('rainbows', {
data: [
{ date: '2016-12-25', count: 1337 },
],
})
.then(res => console.log(res));
.del(id)
Delete a dataset. id
is the the dataset's string name.
gb.del('rainbows').then(res => console.log(res));