diff --git a/src/apps.js b/src/apps.js index 5301f2863..19fb897a5 100644 --- a/src/apps.js +++ b/src/apps.js @@ -458,14 +458,6 @@ function validateCsp(csp) { return null; } -function validateBackupFormat(format) { - assert.strictEqual(typeof format, 'string'); - - if (format === 'tgz' || format == 'rsync') return null; - - return new BoxError(BoxError.BAD_FIELD, 'Invalid backup format'); -} - function validateUpstreamUri(upstreamUri) { assert.strictEqual(typeof upstreamUri, 'string'); @@ -2205,7 +2197,7 @@ async function importApp(app, data, auditSource) { let restoreConfig; if (data.remotePath) { // if not provided, we import in-place - error = validateBackupFormat(backupFormat); + error = backups.validateBackupFormat(backupFormat); if (error) throw error; // TODO: make this smarter to do a read-only test and check if the file exists in the storage backend diff --git a/src/backups.js b/src/backups.js index bae2cb331..a8b36985b 100644 --- a/src/backups.js +++ b/src/backups.js @@ -26,6 +26,7 @@ exports = module.exports = { validatePolicy, validateEncryptionPassword, testConfig, + validateBackupFormat, getPolicy, setPolicy, @@ -348,8 +349,6 @@ async function testConfig(backupConfig) { const func = storage.api(backupConfig.provider); if (!func) return new BoxError(BoxError.BAD_FIELD, 'unknown storage provider'); - if (backupConfig.format !== 'tgz' && backupConfig.format !== 'rsync') return new BoxError(BoxError.BAD_FIELD, 'unknown format'); - await storage.api(backupConfig.provider).testConfig(backupConfig); } @@ -435,6 +434,14 @@ async function setLimits(limits) { await settings.setJson(settings.BACKUP_LIMITS_KEY, limits); } +function validateBackupFormat(format) { + assert.strictEqual(typeof format, 'string'); + + if (format === 'tgz' || format == 'rsync') return null; + + return new BoxError(BoxError.BAD_FIELD, 'Invalid backup format'); +} + async function setStorage(storageConfig) { assert.strictEqual(typeof storageConfig, 'object'); @@ -459,7 +466,10 @@ async function setStorage(storageConfig) { } } - const error = await testConfig(storageConfig); + let error = validateBackupFormat(storageConfig.format); + if (error) throw error; + + error = await testConfig(storageConfig); if (error) throw error; if ('password' in storageConfig) { // user set password