-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdnsimple.js
51 lines (42 loc) · 1.71 KB
/
dnsimple.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
var rp = require('request-promise');
module.exports = function(controller) {
if (!process.env.dnsimple_user) {
console.log('Error: Specify a dnsimple_user in environment.');
process.exit(1);
}
if (!process.env.dnsimple_token) {
console.log('Error: Specify a dnsimple_token in environment.');
process.exit(1);
}
if (!process.env.dnsimple_domain) {
console.log('Error: Specify a dnsimple_domain in environment.');
process.exit(1);
}
function dnsimpleListRecords(bot, message, domain) {
var options = {
method: 'GET',
uri: 'https://api.dnsimple.com/v1/domains/' + domain + '/records',
headers: {
'X-DNSimple-Token': process.env.dnsimple_user + ':' + process.env.dnsimple_token,
'Accept': 'application/json'
},
json: true
};
rp(options).then(function (response) {
response = JSON.stringify(response);
var records = JSON.parse(response);
var count = Object.keys(records).length;
var output = 'Found' + count + ' records.\n';
records.forEach(function(record) {
if(record.record.record_type == 'A')
output = output.concat('- ' + record.record.name + ' ' + record.record.content + '\n');
});
bot.reply(message, output);
}).catch(function (err) {
console.log('Error occured listing dnsimple records ' + err);
});
}
controller.hears(['^record list$', 'show records'], 'direct_message,direct_mention', function(bot, message) {
dnsimpleListRecords(bot, message, process.env.dnsimple_domain);
});
};