Add domains.provider

This commit is contained in:
Girish Ramakrishnan
2018-01-09 14:46:38 -08:00
parent 373c003223
commit 2ac12de204
22 changed files with 138 additions and 89 deletions

View File

@@ -734,8 +734,15 @@ angular.module('Application').service('Client', ['$http', '$interval', 'md5', 'N
}).error(defaultErrorHandler(callback));
};
Client.prototype.setupDnsConfig = function (dnsConfig, callback) {
post('/api/v1/cloudron/dns_setup', dnsConfig).success(function(data, status) {
Client.prototype.setupDnsConfig = function (domain, zoneName, provider, dnsConfig, callback) {
var data = {
domain: domain,
zoneName: zoneName,
provider: provider,
config: dnsConfig
};
post('/api/v1/cloudron/dns_setup', data).success(function(data, status) {
if (status !== 200) return callback(new ClientError(status, data));
callback(null);
}).error(defaultErrorHandler(callback));
@@ -1192,9 +1199,10 @@ angular.module('Application').service('Client', ['$http', '$interval', 'md5', 'N
}).error(defaultErrorHandler(callback));
};
Client.prototype.addDomain = function (domain, config, fallbackCertificate, callback) {
Client.prototype.addDomain = function (domain, provider, config, fallbackCertificate, callback) {
var data = {
domain: domain,
provider: provider,
config: config
};
@@ -1206,8 +1214,9 @@ angular.module('Application').service('Client', ['$http', '$interval', 'md5', 'N
}).error(defaultErrorHandler(callback));
};
Client.prototype.updateDomain = function (domain, config, fallbackCertificate, callback) {
Client.prototype.updateDomain = function (domain, provider, config, fallbackCertificate, callback) {
var data = {
provider: provider,
config: config
};

View File

@@ -81,23 +81,22 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f
$scope.dnsCredentials.error = null;
$scope.error = null;
var provider = $scope.dnsCredentials.provider;
var data = {
domain: $scope.dnsCredentials.domain,
zoneName: $scope.explicitZone,
provider: $scope.dnsCredentials.provider,
providerToken: $scope.instanceId
};
// special case the wildcard provider
if (data.provider === 'wildcard') {
data.provider = 'manual';
if (provider === 'wildcard') {
provider = 'manual';
data.wildcard = true;
}
if (data.provider === 'route53') {
if (provider === 'route53') {
data.accessKeyId = $scope.dnsCredentials.accessKeyId;
data.secretAccessKey = $scope.dnsCredentials.secretAccessKey;
} else if (data.provider === 'gcdns'){
} else if (provider === 'gcdns'){
try {
var serviceAccountKey = JSON.parse($scope.dnsCredentials.gcdnsKey.content);
data.projectId = serviceAccountKey.project_id;
@@ -114,14 +113,14 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f
$scope.dnsCredentials.busy = false;
return;
}
} else if (data.provider === 'digitalocean') {
} else if (provider === 'digitalocean') {
data.token = $scope.dnsCredentials.digitalOceanToken;
} else if (data.provider === 'cloudflare') {
} else if (provider === 'cloudflare') {
data.email = $scope.dnsCredentials.cloudflareEmail;
data.token = $scope.dnsCredentials.cloudflareToken;
}
Client.setupDnsConfig(data, function (error) {
Client.setupDnsConfig($scope.dnsCredentials.domain, $scope.explicitZone, provider, data, function (error) {
if (error && error.statusCode === 403) {
$scope.dnsCredentials.busy = false;
$scope.error = 'Wrong instance id provided.';

View File

@@ -93,20 +93,21 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
$scope.domainConfigure.busy = true;
$scope.domainConfigure.error = null;
var provider = $scope.domainConfigure.provider;
var data = {
provider: $scope.domainConfigure.provider
};
// special case the wildcard provider
if (data.provider === 'wildcard') {
data.provider = 'manual';
if (provider === 'wildcard') {
provider = 'manual';
data.wildcard = true;
}
if (data.provider === 'route53') {
if (provider === 'route53') {
data.accessKeyId = $scope.domainConfigure.accessKeyId;
data.secretAccessKey = $scope.domainConfigure.secretAccessKey;
} else if (data.provider === 'gcdns'){
} else if (provider === 'gcdns'){
try {
var serviceAccountKey = JSON.parse($scope.domainConfigure.gcdnsKey.content);
data.projectId = serviceAccountKey.project_id;
@@ -123,9 +124,9 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
$scope.domainConfigure.busy = false;
return;
}
} else if (data.provider === 'digitalocean') {
} else if (provider === 'digitalocean') {
data.token = $scope.domainConfigure.digitalOceanToken;
} else if (data.provider === 'cloudflare') {
} else if (provider === 'cloudflare') {
data.token = $scope.domainConfigure.cloudflareToken;
data.email = $scope.domainConfigure.cloudflareEmail;
}
@@ -140,8 +141,8 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
// choose the right api, since we reuse this for adding and configuring domains
var func;
if ($scope.domainConfigure.adding) func = Client.addDomain.bind(Client, $scope.domainConfigure.newDomain, data, fallbackCertificate);
else func = Client.updateDomain.bind(Client, $scope.domainConfigure.domain.domain, data, fallbackCertificate);
if ($scope.domainConfigure.adding) func = Client.addDomain.bind(Client, $scope.domainConfigure.newDomain, provider, data, fallbackCertificate);
else func = Client.updateDomain.bind(Client, $scope.domainConfigure.domain.domain, provider, data, fallbackCertificate);
func(function (error) {
$scope.domainConfigure.busy = false;