diff --git a/src/dns/digitalocean.js b/src/dns/digitalocean.js index 2608bb356..7b36df479 100644 --- a/src/dns/digitalocean.js +++ b/src/dns/digitalocean.js @@ -27,6 +27,8 @@ function getInternal(dnsConfig, zoneName, subdomain, type, callback) { .timeout(30 * 1000) .end(function (error, result) { if (error && !error.response) return callback(error); + if (result.statusCode === 404) return callback(new SubdomainError(SubdomainError.NOT_FOUND, util.format('%s %j', result.statusCode, result.body))); + if (result.statusCode === 403 || result.statusCode === 401) return callback(new SubdomainError(SubdomainError.ACCESS_DENIED, util.format('%s %j', result.statusCode, result.body))); if (result.statusCode !== 200) return callback(new SubdomainError(SubdomainError.EXTERNAL_ERROR, util.format('%s %j', result.statusCode, result.body))); var tmp = result.body.domain_records.filter(function (record) { @@ -78,6 +80,7 @@ function upsert(dnsConfig, zoneName, subdomain, type, values, callback) { .timeout(30 * 1000) .end(function (error, result) { if (error && !error.response) return callback(error); + if (result.statusCode === 403 || result.statusCode === 401) return callback(new SubdomainError(SubdomainError.ACCESS_DENIED, util.format('%s %j', result.statusCode, result.body))); if (result.statusCode !== 201) return callback(new SubdomainError(SubdomainError.EXTERNAL_ERROR, util.format('%s %j', result.statusCode, result.body))); return callback(null, 'unused'); @@ -89,6 +92,7 @@ function upsert(dnsConfig, zoneName, subdomain, type, values, callback) { .timeout(30 * 1000) .end(function (error, result) { if (error && !error.response) return callback(error); + if (result.statusCode === 403 || result.statusCode === 401) return callback(new SubdomainError(SubdomainError.ACCESS_DENIED, util.format('%s %j', result.statusCode, result.body))); if (result.statusCode !== 200) return callback(new SubdomainError(SubdomainError.EXTERNAL_ERROR, util.format('%s %j', result.statusCode, result.body))); return callback(null, 'unused'); @@ -147,6 +151,7 @@ function del(dnsConfig, zoneName, subdomain, type, values, callback) { .end(function (error, result) { if (error && !error.response) return callback(error); if (result.statusCode === 404) return callback(null); + if (result.statusCode === 403 || result.statusCode === 401) return callback(new SubdomainError(SubdomainError.ACCESS_DENIED, util.format('%s %j', result.statusCode, result.body))); if (result.statusCode !== 204) return callback(new SubdomainError(SubdomainError.EXTERNAL_ERROR, util.format('%s %j', result.statusCode, result.body))); debug('del: done');