From cfa29fa82e5e3b213d6c3ae5f1fee67ddf70893b Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Tue, 11 Sep 2018 21:53:18 -0700 Subject: [PATCH] refactor to validateTlsConfig --- src/domains.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/domains.js b/src/domains.js index 330cbeef3..6ff97a166 100644 --- a/src/domains.js +++ b/src/domains.js @@ -165,6 +165,16 @@ function validateHostname(location, domainObject) { return null; } +function validateTlsConfig(tlsConfig) { + assert.strictEqual(typeof tlsConfig, 'object'); + + if (tlsConfig.provider !== 'fallback' && tlsConfig.provider !== 'caas' && tlsConfig.provider.indexOf('letsencrypt-') !== 0) { + return new DomainsError(DomainsError.BAD_FIELD, 'tlsConfig.provider must be caas, fallback or letsencrypt-*'); + } + + return null; +} + function add(domain, zoneName, provider, dnsConfig, fallbackCertificate, tlsConfig, callback) { assert.strictEqual(typeof domain, 'string'); assert.strictEqual(typeof zoneName, 'string'); @@ -189,9 +199,8 @@ function add(domain, zoneName, provider, dnsConfig, fallbackCertificate, tlsConf if (error) return callback(new DomainsError(DomainsError.BAD_FIELD, error.message)); } - if (tlsConfig.provider !== 'fallback' && tlsConfig.provider !== 'caas' && tlsConfig.provider.indexOf('letsencrypt-') !== 0) { - return callback(new DomainsError(DomainsError.BAD_FIELD, 'tlsConfig.provider must be caas, fallback or le-*')); - } + let error = validateTlsConfig(tlsConfig); + if (error) return callback(error); if (dnsConfig.hyphenatedSubdomains && !config.allowHyphenatedSubdomains()) return callback(new DomainsError(DomainsError.BAD_FIELD, 'Not allowed in this edition')); @@ -281,9 +290,8 @@ function update(domain, zoneName, provider, dnsConfig, fallbackCertificate, tlsC if (error) return callback(new DomainsError(DomainsError.BAD_FIELD, error.message)); } - if (tlsConfig.provider !== 'fallback' && tlsConfig.provider !== 'caas' && tlsConfig.provider.indexOf('letsencrypt-') !== 0) { - return callback(new DomainsError(DomainsError.BAD_FIELD, 'tlsConfig.provider must be caas, fallback or letsencrypt-*')); - } + error = validateTlsConfig(tlsConfig); + if (error) return callback(error); if (dnsConfig.hyphenatedSubdomains && !config.allowHyphenatedSubdomains()) return callback(new DomainsError(DomainsError.BAD_FIELD, 'Not allowed in this edition'));