A lightweight promise based Node wrapper around DigitalOcean's API v2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.6 KiB

const axios = require('axios');
const path = require('path');
const {
token
} = require(path.resolve(path.dirname(require.main.filename), 'config'));
const domainList = require('./lib/domains/list');
const domainCreate = require('./lib/domains/create');
const domainRetrieve = require('./lib/domains/retrieve');
const domainDelete = require('./lib/domains/delete');
const listDomainRecords = require('./lib/domain-records/list');
const createDomainRecords = require('./lib/domain-records/create');
const retrieveDomainRecords = require('./lib/domain-records/retrieve');
const updateDomainRecords = require('./lib/domain-records/update');
const deleteDomainRecords = require('./lib/domain-records/delete');
const instance = axios.create({
baseURL: 'https://api.digitalocean.com/v2',
timeout: 10000,
headers: {
'Authorization': `Bearer ${token}`
}
});
module.exports = {
domain: {
List: () => domainList(instance),
Create: (domainObject) => domainCreate(instance, domainObject),
Retrieve: (domainObject) => domainRetrieve(instance, domainObject),
Delete: (domainObject) => domainDelete(instance, domainObject),
Records: {
List: (domainObject) => listDomainRecords(instance, domainObject),
Create: (domainObject, domainRecords) => createDomainRecords(instance, domainObject, domainRecords),
Retrieve: (domainObject, recordId) => retrieveDomainRecords(instance, domainObject, recordId),
Update: (domainObject, recordId) => updateDomainRecords(instance, domainObject, recordId),
Delete: (domainObject, recordId) => deleteDomainRecords(instance, domainObject, recordId),
}
}
};