UNPKG

linode-api

Version:

Linode API client

45 lines (44 loc) 1.4 kB
(function() { var LinodeClient, api_defs, fs, qs, request; request = require('request'); qs = require('querystring'); fs = require('fs'); api_defs = JSON.parse(fs.readFileSync(__dirname + '/../data/api.json')); LinodeClient = (function() { function LinodeClient(api_key) { this.api_key = api_key; this.base_uri = "https://api.linode.com/?api_key=" + this.api_key; } LinodeClient.prototype.call = function(action, args, callback) { var uri; uri = "" + this.base_uri + "&api_action=" + action + "&" + (qs.stringify(args)); return request({ uri: uri }, function(err, res, body) { var obj; obj = JSON.parse(body); if (obj.ERRORARRAY.length > 0) { return callback(obj.ERRORARRAY[0].ERRORMESSAGE, void 0); } else { return callback(void 0, obj.DATA); } }); }; return LinodeClient; })(); exports.LinodeClient = LinodeClient; exports.dump_api = function() { var method, param, params, s, _i, _len; s = ""; for (method in api_defs) { params = api_defs[method]; s += "" + method + "\n"; for (_i = 0, _len = params.length; _i < _len; _i++) { param = params[_i]; s += " " + param.param + " " + (param.required ? '(required)' : '(optional)') + "\n"; } s += "\n"; } return s; }; }).call(this);