From b2a992d2d5d7ebef7ea0123127a2395ab89e01a2 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Fri, 17 Mar 2017 14:17:37 -0600 Subject: [PATCH] more dns stuff --- dns.examples.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ oauth3.dns.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 dns.examples.js diff --git a/dns.examples.js b/dns.examples.js new file mode 100644 index 0000000..a6be988 --- /dev/null +++ b/dns.examples.js @@ -0,0 +1,48 @@ +oauth3.api('devices.list').then(function (result) { + console.log(result); +}); + +oauth3.api( + 'devices.set' +, { data: { + name: 'tester.local' + , uid: 'test-01-uid' + , addresses: [ + { + type: 'A' + , address: '192.168.1.104' + } + ] + } } +).then(function (result) { + console.log('devices.set'); + console.log(result); +}); + +// TODO don't allow attaching if the device is not set +// TODO update API as well +oauth3.api( + 'devices.attach' +, { data: { + sub: 'test-01' + , sld: 'aj' + , tld: 'daplie.me' + , uid: 'test-01-uid' + } } +).then(function (result) { + console.log('devices.attach'); + console.log(result); +}); + +oauth3.api( + 'devices.detach' +, { data: { + sub: 'test-01' + , sld: 'aj' + , tld: 'daplie.me' + , uid: 'test-01-uid' + } } +).then(function (result) { + console.log('devices.detach'); + console.log(result); +}); diff --git a/oauth3.dns.js b/oauth3.dns.js index 7d44810..abc139e 100644 --- a/oauth3.dns.js +++ b/oauth3.dns.js @@ -29,6 +29,38 @@ OAUTH3.api['devices.list'] = function (providerUri, opts) { }); }; +OAUTH3.api['devices.attach'] = function (providerUri, opts) { + var session = opts.session; + + return OAUTH3.request({ + url: OAUTH3.url.normalize(providerUri) + + '/api/com.daplie.domains/accounts/' + session.token.sub + //+ '/devices/' + device + '/' + + '/devices/' + (opts.data.uid || '_') + '/' + opts.data.device + + '/' + opts.data.tld + '/' + opts.data.sld + '/' + (opts.data.sub || '') + , method: 'POST' + , session: session + }, {}).then(function (res) { + return res.data.devices || res.data; + }); +}; + +OAUTH3.api['devices.detach'] = function (providerUri, opts) { + var session = opts.session; + + return OAUTH3.request({ + url: OAUTH3.url.normalize(providerUri) + + '/api/com.daplie.domains/accounts/' + session.token.sub + //+ '/devices/' + device + '/' + + '/devices/' + (opts.data.uid || '_') + '/' + opts.data.device + + '/' + opts.data.tld + '/' + opts.data.sld + '/' + (opts.data.sub || '') + , method: 'DELETE' + , session: session + }, {}).then(function (res) { + return res.data.devices || res.data; + }); +}; + OAUTH3.api['devices.detach'] = function (providerUri, opts) { var session = opts.session;