From 15cac181c38dad405a884b651817fd9b94da9967 Mon Sep 17 00:00:00 2001 From: william Date: Mon, 23 May 2016 18:18:34 -0400 Subject: [PATCH] digital ocean API --- doapi.js | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 80 insertions(+), 7 deletions(-) diff --git a/doapi.js b/doapi.js index 4d2abc6..9e417fd 100644 --- a/doapi.js +++ b/doapi.js @@ -10,21 +10,94 @@ api = function(key){ 'Authorization': 'Bearer '+key } - this.byTag = function(tag, callback){ + // API mathods + this.account = function(callback){ + var options = { + url: this.BASEURL+"account", + headers: this.headers + }; + + return request.get(options, function(error, response, body){ + return callback(body, response, error); + }); + }; + + this.dropletsByTag = function(tag, callback){ var options = { url: this.BASEURL+'droplets?tag_name='+tag, headers: this.headers - } + }; return request.get(options, function(error, response, body){ return callback(body, response, error); - }) + }); + }; + + this.dropletSetTag = function(tag, dropletID, callback) { + var data = { + resources: [ + { + resource_id: dropletID, + resource_type: "droplet" + } + ] + }; + var options = { + url: this.BASEURL+'tags/'+tag+'/resources', + headers: this.headers, + body: JSON.stringify(data) + }; + + return request.post(options, function(error, response, body){ + return callback(body, response, error); + }); + }; + + this.dropletCreate = function(args, callback){ + var data = { + name: args.name, // || return false, + region: args.region || "nyc3", + size: args.size || "512mb", + image: args.image || "ubuntu-14-04-x64", + ssh_keys: args.ssh_key || null, + backups: args.backup || false, + private_networking: args.private_networking || true, + user_data: args.user_data || null + }; + var options = { + url: this.BASEURL+'droplets', + headers: this.headers, + body: JSON.stringify(data) + }; + + return request.post(options, function(error, response, body){ + return callback(body, response, error); + }); + } + + this.dropletDestroy = function(dropletID, callback){ + var options = { + url: this.BASEURL+"droplets/"+dropletID, + headers: this.headers + }; + + return request.del(options, function(error, response, body){ + callback(body, response, error); + }); + }; + + this.dropletInfo = function(dropletID, callback){ + var options = { + url: this.BASEURL+"droplets/"+dropletID, + headers: this.headers + }; + + return request.get(options, function(error, response, body){ + callback(body, response, error); + }); }; - // this.setTag = function(id, tag, callback){ - // return request.post(url+) - // }; return this; } -module.exports = api; \ No newline at end of file +module.exports = api;