-
Notifications
You must be signed in to change notification settings - Fork 3
/
do.js
68 lines (60 loc) · 1.39 KB
/
do.js
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
const Account = require("./account/do-account");
const Droplets = require("./compute/do-droplets");
const LoadBalancers = require("./networking/do-load-balancers");
const FloatingIps = require("./networking/do-floating-ips");
const Volumes = require("./storage/do-volumes");
class DO {
/**
* Expose DigitalOcean APIs
* @constructor
*/
constructor(token, doSDK) {
this._doToken = token;
this._DO = doSDK;
return {
getSDK: () => this._DO,
getToken: () => this._doToken,
account: this.account,
droplets: this.droplets,
loadbalancers: this.loadBalancers,
floatingips: this.floatingIps,
volumes: this.volumes
};
}
/**
* Account - Account & SSH Wrapper
* @account
*/
account() {
return new Account(this.getSDK(), this.getToken());
}
/**
* Compute - Droplets Wrapper
* @droplets
*/
droplets() {
return new Droplets(this.getSDK(), this.getToken());
}
/**
* Networking - Load Balancers Wrapper
* @loadBalancers
*/
loadBalancers() {
return new LoadBalancers(this.getSDK(), this.getToken());
}
/**
* Networking - Floating IPs Wrapper
* @floatingIps
*/
floatingIps() {
return new FloatingIps(this.getSDK(), this.getToken());
}
/**
* Storage - Volumes Wrapper
* @volumes
*/
volumes() {
return new Volumes(this.getSDK(), this.getToken());
}
}
module.exports = DO;