Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,21 @@ API
console.log('background error: ' + err.message);
});

### Get client information

cloud.getClients(function(err, clients) {
if (!!err) return console.log('getClients: ' + err.message);

// inspect clients[{}]
});

cloud.getClientInfo(client, function(err, client) {
if (!!err) return console.log('getClientInfo: ' + err.message);

// inspect device{}
});


### Get device information

cloud.getDevices(function(err, devices) {
Expand All @@ -52,7 +67,7 @@ API
});

cloud.getDeviceInfo(device, function(err, device) {
if (!!err) return console.log('getDevice: ' + err.message);
if (!!err) return console.log('getDeviceInfo: ' + err.message);

// inspect device{}
});
Expand Down
137 changes: 137 additions & 0 deletions telldus-hosted-api.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
var express = require('express');
var TelldusAPI = require('./telldus-live');
var logger = require('morgan');
var parser = require('body-parser');
var secrets = require('./secrets.js').Secrets;

console.log(secrets);


var publicKey = secrets.publicKey
, privateKey = secrets.privateKey
, token = secrets.token
, tokenSecret = secrets.tokenSecret
, port = '8080'
, cloud
;


var app = express();

// router: clients
app.get('/clients', function(req, res) {
cloud = TelldusAPI.TelldusAPI({ publicKey : publicKey, privateKey : privateKey }).login(token, tokenSecret, function(err, user) {
if (!!err) return console.log('login error: ' + err.message);

cloud.getClients(function(err, clients) {
res.json(clients);
});
}).on('error', function(err) {
console.log('background error: ' + err.message);
});
});

app.get('/clients/:id', function(req, res) {
cloud = TelldusAPI.TelldusAPI({ publicKey : publicKey, privateKey : privateKey }).login(token, tokenSecret, function(err, user) {
if (!!err) return console.log('login error: ' + err.message);

var paramClient = { id: req.params.id };

cloud.getClientInfo(paramClient, function(err, client) {
res.json(client);
});
}).on('error', function(err) {
console.log('background error: ' + err.message);
});
});

// router: sensors
app.get('/sensors', function(req, res) {
cloud = TelldusAPI.TelldusAPI({ publicKey : publicKey, privateKey : privateKey }).login(token, tokenSecret, function(err, user) {
if (!!err) return console.log('login error: ' + err.message);

cloud.getSensors(function(err, sensors) {
res.json(sensors);
});
}).on('error', function(err) {
console.log('background error: ' + err.message);
});
});

app.get('/sensors/:id', function(req, res) {
cloud = TelldusAPI.TelldusAPI({ publicKey : publicKey, privateKey : privateKey }).login(token, tokenSecret, function(err, user) {
if (!!err) return console.log('login error: ' + err.message);

var paramSensor = { id: req.params.id };

cloud.getSensorInfo(paramSensor, function(err, sensor) {
res.json(sensor);
});
}).on('error', function(err) {
console.log('background error: ' + err.message);
});
});

// router: device
app.get('/devices', function(req, res) {
cloud = TelldusAPI.TelldusAPI({ publicKey : publicKey, privateKey : privateKey }).login(token, tokenSecret, function(err, user) {
if (!!err) return console.log('login error: ' + err.message);

cloud.getDevices(function(err, devices) {
res.json(devices);
});
}).on('error', function(err) {
console.log('background error: ' + err.message);
});
});

app.get('/devices/:id', function(req, res) {
cloud = TelldusAPI.TelldusAPI({ publicKey : publicKey, privateKey : privateKey }).login(token, tokenSecret, function(err, user) {
if (!!err) return console.log('login error: ' + err.message);

var paramDevice = { id: req.params.id };

cloud.getDeviceInfo(paramDevice, function(err, device) {
res.json(device);
});
}).on('error', function(err) {
console.log('background error: ' + err.message);
});
});

app.put('/devices/:id/on', function(req, res) {
cloud = TelldusAPI.TelldusAPI({ publicKey : publicKey, privateKey : privateKey }).login(token, tokenSecret, function(err, user) {
if (!!err) return console.log('login error: ' + err.message);

var paramDevice = { id: req.params.id };

cloud.onOffDevice(paramDevice, "On", function(err, device) {
res.json(device);
});
}).on('error', function(err) {
console.log('background error: ' + err.message);
});
});

app.get('/devices/:id/off', function(req, res) {
cloud = TelldusAPI.TelldusAPI({ publicKey : publicKey, privateKey : privateKey }).login(token, tokenSecret, function(err, user) {
if (!!err) return console.log('login error: ' + err.message);

var paramDevice = { id: req.params.id };
console.log(paramDevice);

cloud.onOffDevice(paramDevice, "Off", function(err, device) {
res.json(device);
});
}).on('error', function(err) {
console.log('background error: ' + err.message);
});
});

var server = app.listen(port, function () {
var host = server.address().address;
var port = server.address().port;

console.log('Example app listening at http://%s:%s', host, port);
});

13 changes: 13 additions & 0 deletions telldus-live.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,18 @@ TelldusAPI.prototype.login = function(token, tokenSecret, callback) {
return self;
};

TelldusAPI.prototype.getClients = function(callback) {
return this.roundtrip('GET', '/clients/list', function(err, results) {
if (!!err) return callback(err);

if (!util.isArray(results.client)) return callback(new Error('non-array returned: ' + JSON.stringify(results)));
return callback(null, results.client);
});
};

TelldusAPI.prototype.getClientInfo = function(client, callback) {
return this.roundtrip('GET', '/client/info?' + querystring.stringify({ id: client.id }), callback);
};

TelldusAPI.prototype.getSensors = function(callback) {
return this.roundtrip('GET', '/sensors/list', function(err, results) {
Expand Down Expand Up @@ -200,6 +212,7 @@ TelldusAPI.prototype.invoke = function(method, path, json, callback) {
callback = json;
json = null;
}

if (!callback) {
callback = function(err, results) {
if (!!err) self.logger.error('invoke', { exception: err }); else self.logger.info(path, { results: results });
Expand Down
100 changes: 0 additions & 100 deletions test.js

This file was deleted.