diff --git a/src/routes/settings.js b/src/routes/settings.js index 5c8185094..177862ac1 100644 --- a/src/routes/settings.js +++ b/src/routes/settings.js @@ -25,6 +25,9 @@ exports = module.exports = { getPlatformConfig: getPlatformConfig, setPlatformConfig: setPlatformConfig, + getDynamicDnsConfig: getDynamicDnsConfig, + setDynamicDnsConfig: setDynamicDnsConfig, + setRegistryConfig: setRegistryConfig }; @@ -208,6 +211,28 @@ function setPlatformConfig(req, res, next) { }); } +function getDynamicDnsConfig(req, res, next) { + settings.getDynamicDnsConfig(function (error, enabled) { + if (error) return next(new HttpError(500, error)); + + next(new HttpSuccess(200, { enabled: enabled })); + }); +} + +function setDynamicDnsConfig(req, res, next) { + assert.strictEqual(typeof req.body, 'object'); + + if (typeof req.body.enabled !== 'boolean') return next(new HttpError(400, 'enabled boolean is required')); + + settings.setDynamicDnsConfig(req.body.enabled, function (error) { + if (error && error.reason === SettingsError.BAD_FIELD) return next(new HttpError(400, error.message)); + if (error) return next(new HttpError(500, error)); + + next(new HttpSuccess(200, {})); + }); +} + + function getAppstoreConfig(req, res, next) { settings.getAppstoreConfig(function (error, result) { if (error) return next(new HttpError(500, error)); diff --git a/src/server.js b/src/server.js index 169f4b5cd..8f8ea56e3 100644 --- a/src/server.js +++ b/src/server.js @@ -231,6 +231,8 @@ function initializeExpressSync() { router.post('/api/v1/settings/backup_config', settingsScope, isUnmanaged, routes.settings.setBackupConfig); router.get ('/api/v1/settings/platform_config', settingsScope, isUnmanaged, routes.settings.getPlatformConfig); router.post('/api/v1/settings/platform_config', settingsScope, isUnmanaged, routes.settings.setPlatformConfig); + router.get ('/api/v1/settings/dynamic_dns', settingsScope, isUnmanaged, routes.settings.getDynamicDnsConfig); + router.post('/api/v1/settings/dynamic_dns', settingsScope, isUnmanaged, routes.settings.setDynamicDnsConfig); router.get ('/api/v1/settings/time_zone', settingsScope, routes.settings.getTimeZone); router.post('/api/v1/settings/time_zone', settingsScope, routes.settings.setTimeZone);