index.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. 'use strict'
  2. var request = require('request');
  3. function ZT1ControllerClient(url,authToken)
  4. {
  5. this.url = url;
  6. this.authToken = authToken;
  7. }
  8. ZT1ControllerClient.prototype.status = function(callback)
  9. {
  10. request({
  11. url: this.url + 'controller',
  12. method: 'GET',
  13. headers: {
  14. 'X-ZT1-Auth': this.authToken
  15. }
  16. },function(error,response,body) {
  17. if (error)
  18. return callback(error,{});
  19. if (response.statusCode !== 200)
  20. return callback(new Error('server responded with '+response.statusCode),{});
  21. var controllerStatus = JSON.parse(body);
  22. if (controllerStatus.controller === true) {
  23. request({
  24. url: this.url + 'status',
  25. method: 'GET',
  26. headers: {
  27. 'X-ZT1-Auth': this.authToken
  28. }
  29. },function(error,response,body) {
  30. if (error)
  31. return callback(error,{});
  32. if (response.statusCode !== 200)
  33. return callback(new Error('server responded with '+response.statusCode),{});
  34. var nodeStatus = JSON.parse(body);
  35. for(var k in controllerStatus)
  36. nodeStatus[k] = controllerStatus[k];
  37. return callback(null,nodeStatus);
  38. }.bind(this));
  39. } else return callback(new Error('No "controller==true" test value present.'),{});
  40. }.bind(this));
  41. };
  42. ZT1ControllerClient.prototype.listNetworks = function(callback)
  43. {
  44. request({
  45. url: this.url + 'controller/network',
  46. method: 'GET',
  47. headers: {
  48. 'X-ZT1-Auth': this.authToken
  49. }
  50. },function(error,response,body) {
  51. if (error)
  52. return callback(error,{});
  53. if (response.statusCode !== 200)
  54. return callback(new Error('server responded with '+response.statusCode),{});
  55. var r = JSON.parse(body);
  56. return callback(null,Array.isArray(r) ? r : []);
  57. });
  58. };
  59. exports.ZT1ControllerClient = ZT1ControllerClient;