node-tsguru
Advanced tools
Comparing version 1.3.0 to 1.3.1
59
index.js
@@ -21,7 +21,13 @@ var MAX_BODY_SIZE = 4000; | ||
util.inherits(Client, events.EventEmitter); | ||
Client.prototype._insert = function(timeseriesName, col, cb) { | ||
Client.prototype._insert = function(timeseriesName, symbol, values, cb) { | ||
"use strict"; | ||
var uri; | ||
if (symbol !== null) { | ||
uri = this.apiBase + "/databases/" + this.databaseID + "/timeseries/" + timeseriesName + "/" + symbol + "/data"; | ||
} else { | ||
uri = this.apiBase + "/databases/" + this.databaseID + "/timeseries/" + timeseriesName + "/data"; | ||
} | ||
request({ | ||
method: "POST", | ||
uri: this.apiBase + "/databases/" + this.databaseID + "/timeseries/" + timeseriesName + "/data", | ||
uri: uri, | ||
headers: { | ||
@@ -32,3 +38,3 @@ "Authorization": "Token " + this.token, | ||
timeout: this.timeout, | ||
body: col.join(",") | ||
body: values.join(",") | ||
}, function(err, res) { | ||
@@ -52,9 +58,9 @@ if (err) { | ||
} | ||
var cb, col; | ||
var cb, values; | ||
if (typeof arguments[arguments.length-1] === "function") { | ||
cb = arguments[arguments.length-1]; | ||
col = Array.prototype.slice.call(arguments, 1, (arguments.length-1)); | ||
values = Array.prototype.slice.call(arguments, 1, (arguments.length-1)); | ||
} else { | ||
cb = undefined; | ||
col = Array.prototype.slice.call(arguments, 1, arguments.length); | ||
values = Array.prototype.slice.call(arguments, 1, arguments.length); | ||
} | ||
@@ -64,6 +70,6 @@ assert.optionalFunc(cb, "cb"); | ||
if (cb !== undefined) { | ||
self._insert(timeseriesName, col, cb); | ||
self._insert(timeseriesName, null, values, cb); | ||
} else { | ||
return new Promise(function(resolve, reject) { | ||
self._insert(timeseriesName, col, function(err, res) { | ||
self._insert(timeseriesName, null, values, function(err, res) { | ||
if (err) { | ||
@@ -78,2 +84,33 @@ reject(err); | ||
}; | ||
Client.prototype.insertSymbol = function(timeseriesName, symbol) { | ||
"use strict"; | ||
assert.string(timeseriesName, "timeseriesName"); | ||
assert.string(symbol, "symbol"); | ||
if (arguments.length < 3) { | ||
assert.fail(arguments.length, 3, "to less arguments", ">="); | ||
} | ||
var cb, values; | ||
if (typeof arguments[arguments.length-1] === "function") { | ||
cb = arguments[arguments.length-1]; | ||
values = Array.prototype.slice.call(arguments, 2, (arguments.length-1)); | ||
} else { | ||
cb = undefined; | ||
values = Array.prototype.slice.call(arguments, 2, arguments.length); | ||
} | ||
assert.optionalFunc(cb, "cb"); | ||
var self = this; | ||
if (cb !== undefined) { | ||
self._insert(timeseriesName, symbol, values, cb); | ||
} else { | ||
return new Promise(function(resolve, reject) { | ||
self._insert(timeseriesName, symbol, values, function(err, res) { | ||
if (err) { | ||
reject(err); | ||
} else { | ||
resolve(res); | ||
} | ||
}); | ||
}); | ||
} | ||
}; | ||
Client.prototype.bulk = function() { | ||
@@ -89,2 +126,8 @@ "use strict"; | ||
}, | ||
addSymbol: function(timeseriesName, symbol) { | ||
assert.string(timeseriesName, "timeseriesName"); | ||
assert.string(symbol, "symbol"); | ||
lines.push(Array.prototype.slice.call(arguments).join(",") + CSV_LINE_END); | ||
return this; | ||
}, | ||
_insert: function(cb) { | ||
@@ -91,0 +134,0 @@ if (lines.length === 0) { |
@@ -15,23 +15,57 @@ var tsguru = require("../index.js"); | ||
}); | ||
it("insert", function(done) { | ||
client.insert("sensor01", 123.45, function(err) { | ||
if (err) { | ||
throw err; | ||
} | ||
done(); | ||
}); | ||
}); | ||
it("bulk", function(done) { | ||
client.bulk() | ||
.add("sensor01", 123.45) | ||
.add("sensor02", 234.56) | ||
.add("sensor03", 345.67) | ||
.add("sensor04", 456.78) | ||
.insert(function(err) { | ||
if (err) { | ||
throw err; | ||
} | ||
done(); | ||
}); | ||
}); | ||
it("empty bulk", function(done) { | ||
client.bulk() | ||
.insert(function(err) { | ||
if (err) { | ||
throw err; | ||
} | ||
done(); | ||
}); | ||
}); | ||
describe("simple", function() { | ||
it("insert", function(done) { | ||
client.insert("sensor01", 123.45, function(err) { | ||
if (err) { | ||
throw err; | ||
} | ||
done(); | ||
}); | ||
}); | ||
it("bulk", function(done) { | ||
client.bulk() | ||
.add("sensor01", 123.45) | ||
.add("sensor02", 234.56) | ||
.add("sensor03", 345.67) | ||
.add("sensor04", 456.78) | ||
.insert(function(err) { | ||
if (err) { | ||
throw err; | ||
} | ||
done(); | ||
}); | ||
}); | ||
}); | ||
describe("symbol", function() { | ||
it("insert", function(done) { | ||
client.insertSymbol("symbol01", "sym1", 123.45, function(err) { | ||
if (err) { | ||
throw err; | ||
} | ||
done(); | ||
}); | ||
}); | ||
it("bulk", function(done) { | ||
client.bulk() | ||
.addSymbol("symbol01", "sym1", 123.45) | ||
.addSymbol("symbol01", "sym2", 234.56) | ||
.addSymbol("symbol01", "sym3", 345.67) | ||
.addSymbol("symbol01", "sym4", 456.78) | ||
.insert(function(err) { | ||
if (err) { | ||
throw err; | ||
} | ||
done(); | ||
}); | ||
}); | ||
}); | ||
}); |
{ | ||
"name": "node-tsguru", | ||
"version": "1.3.0", | ||
"version": "1.3.1", | ||
"description": "TimeSeries.Guru Node.js client", | ||
@@ -5,0 +5,0 @@ "keywords": ["time", "series", "timeseries", "time-series", "guru", "timeseriesguru", "timeseries.guru", "client"], |
@@ -107,3 +107,3 @@ var mountebank = require("mountebank"); | ||
"equals": { | ||
"path": "/databases/YYY/timeseries/sensor02/data", | ||
"path": "/databases/YYY/timeseries/sensor02/a/data", | ||
"method": "POST", | ||
@@ -114,3 +114,3 @@ "headers": { | ||
}, | ||
"body": "a,123.45" | ||
"body": "123.45" | ||
} | ||
@@ -162,3 +162,3 @@ }] | ||
it("insert symbol", function(done) { | ||
client.insert("sensor02", "a", 123.45, function(err) { | ||
client.insertSymbol("sensor02", "a", 123.45, function(err) { | ||
done(err); | ||
@@ -165,0 +165,0 @@ }); |
25985
571