-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCalls.js
More file actions
81 lines (64 loc) · 2.17 KB
/
Calls.js
File metadata and controls
81 lines (64 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
'use strict'
var util = require('util');
var request = require('request');
module.exports.status = function (sourceObj, callback) {
console.log('executing status call');
var opts = module.exports.buildRawRequest(sourceObj);
opts.url += '/status';
performCall(opts, callback);
}
module.exports.read = function (sourceObj, from, paramsArr, callback) {
var opts = module.exports.buildRawRequest(sourceObj);
opts.url += '/parts/' + sourceObj.deviceuuid + '/filter?live=false';
if (from) {
opts.url += '&from=' + from;
}
opts.method = 'POST';
var a;
if (Array.isArray(paramsArr) == false) {
var a = [];
a.push(paramsArr);
}
else {
a = paramsArr;
}
var body = { 'variables': a };
opts.body = JSON.stringify(body);
console.log('executing read call, opts:' + util.inspect(opts));
performCall(opts, callback);
}
module.exports.write = function (sourceObj, config, value, callback) {
var opts = module.exports.buildRawRequest(sourceObj);
opts.url += '/parts/' + sourceObj.deviceuuid + '?live=true';
opts.method = 'PATCH';
var vals = {};
vals[config.variabletag] = config.variableid;
vals.value=value;
var body = { 'values': vals };
opts.body = JSON.stringify(body);
console.log('executing write call, opts:' + util.inspect(opts));
performCall(opts, callback);
}
module.exports.buildRawRequest = function (sourceObj) {
var opts = {};
opts.url = sourceObj.serverUrl;
opts.headers = { 'content-type': 'application/json', 'eitcusertoken': sourceObj.userToken };
return opts;
}
function performCall(options, callback) {
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body);
callback(null, info);
}
else {
console.log('error:' + error + ' body:' + body);
var msg = {};
msg.error = 'error';
msg.errorDetails = error;
if (response && response.statusCode)
msg.statusCode = response.statusCode;
callback(msg, response);
}
});
}