147 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| ;(function (exports) {
 | |
| 'use strict';
 | |
| 
 | |
| var OAUTH3 = exports.OAUTH3 = exports.OAUTH3 || require('./oauth3.core.js').OAUTH3;
 | |
| 
 | |
| OAUTH3.api['domains.checkAvailability'] = function (providerUri, opts) {
 | |
|   var session = opts.session;
 | |
|   var sld = opts.sld;
 | |
|   var tld = opts.tld;
 | |
| 
 | |
|   return OAUTH3.request({
 | |
|     method: 'GET'
 | |
|   , url: OAUTH3.url.normalize(providerUri)
 | |
|       + '/api/com.daplie.domains/check-availability/' + sld + '/' + tld
 | |
|   , session: session
 | |
|   }).then(function (res) {
 | |
|     return res;
 | |
|   });
 | |
| };
 | |
| 
 | |
| OAUTH3.api['domains.purchase'] = function (providerUri, opts) {
 | |
|   var session = opts.session;
 | |
| 
 | |
|   return OAUTH3.request({
 | |
|     method: 'POST'
 | |
|   , url: OAUTH3.url.normalize(providerUri)
 | |
|       + '/api/com.daplie.domains/accounts/' + session.token.sub + '/registrations'
 | |
|   , session: session
 | |
|   , data: opts.data
 | |
|   }).then(function (res) {
 | |
|     return res;
 | |
|   });
 | |
| };
 | |
| 
 | |
| OAUTH3.api['domains.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 + '/registrations'
 | |
|   , session: session
 | |
|   }).then(function (res) {
 | |
|     return res.data.registrations || res.data.domains || res.data;
 | |
|   });
 | |
| };
 | |
| 
 | |
| // TODO: Manual Renew Function
 | |
| OAUTH3.api['domains.extend'] = function (providerUri, opts) {
 | |
|   var session = opts.session;
 | |
| 
 | |
|   return OAUTH3.request({
 | |
|     method: 'POST'
 | |
|   , url: OAUTH3.url.normalize(providerUri)
 | |
|       + '/api/com.daplie.domains/accounts/' + session.token.sub + '/registrations/' + opts.data.tld + '/' + opts.data.sld + '/extend'
 | |
|   , session: session
 | |
|   , data: opts.data
 | |
|   }).then(function (res) {
 | |
|     return res;
 | |
|   });
 | |
| };
 | |
| 
 | |
| 
 | |
| OAUTH3.api['ns.list'] = function (providerUri, opts) {
 | |
|   var session = opts.session;
 | |
|   var domain = opts.domain;
 | |
|   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['ns.add'] = function (providerUri, opts) {
 | |
|   var session = opts.session;
 | |
|   var server = opts.server;
 | |
|   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 + '/ns/'
 | |
|       + tld + '/' + sld + '/' + sub
 | |
|   , session: session
 | |
|   , data: { nameservers: [server] }
 | |
|   }).then(function (res) {
 | |
|     return res;
 | |
|   });
 | |
| };
 | |
| 
 | |
| 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 ip = opts.ip;
 | |
|   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
 | |
|   , data: { ip: ip }
 | |
|   }, {}).then(function (res) {
 | |
|     return res;
 | |
|   });
 | |
| };
 | |
| 
 | |
| }('undefined' !== typeof exports ? exports : window));
 |