linode-api
Version:
Linode API client
45 lines (44 loc) • 1.4 kB
JavaScript
(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);