From a4f29edf4ee8ca738625a4fd1ba7f0dd4007b32d Mon Sep 17 00:00:00 2001 From: Drew Warren Date: Thu, 6 Apr 2017 15:14:17 -0600 Subject: [PATCH] API add methods Glue & NS --- oauth3.domains.js | 64 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/oauth3.domains.js b/oauth3.domains.js index f38ae75..5b7baa8 100644 --- a/oauth3.domains.js +++ b/oauth3.domains.js @@ -16,4 +16,68 @@ OAUTH3.api['domains.list'] = function (providerUri, opts) { }); }; +OAUTH3.api['ns.list'] = function (providerUri, opts) { + var domain = opts.domain; + var session = opts.session; + + var nameArr = domain.split('.'); + var reverseNameArr = nameArr.reverse(); + var nameSubArr = reverseNameArr.slice(3); + var tld; + var sld; + var sub; + + if (reverseNameArr[0] === 'me' && reverseNameArr[1] === 'daplie') { + tld = 'daplie.me'; + sld = reverseNameArr[2]; + sub = nameSubArr.reverse().join('.') || ''; + } else { + tld = nameArr[0]; + sld = nameArr[1]; + sub = reverseNameArr.slice(2).reverse().join('.') || ''; + } + + return OAUTH3.request({ + method: 'GET' + , url: OAUTH3.url.normalize(providerUri) + + '/api/com.daplie.domains/accounts/' + session.token.sub + '/ns/' + + tld + '/' + sld + '/' + sub + , session: session + }).then(function (res) { + return res.data; + }); +}; + +OAUTH3.api['glue.list'] = function (providerUri, opts) { + var session = opts.session; + + return OAUTH3.request({ + method: 'GET' + , url: OAUTH3.url.normalize(providerUri) + + '/api/com.daplie.domains/accounts/' + session.token.sub + '/glue' + , session: session + }).then(function (res) { + return res.data; + }); +}; + +OAUTH3.api['glue.add'] = function (providerUri, opts) { + var session = opts.session; + var glueIp = opts.glueIp; + var tld = opts.tld; + var sld = opts.sld; + var sub = opts.sub; + + return OAUTH3.request({ + method: 'POST' + , url: OAUTH3.url.normalize(providerUri) + + '/api/com.daplie.domains/accounts' + session.token.sub + '/glue/' + + tld + '/' + sld + '/' + sub + , session: session + , body: { ip: glueIp } + }, {}).then(function (res) { + console.log('glue-add res: ', res); + }); +}; + }('undefined' !== typeof exports ? exports : window));