diff --git a/src/routes/settings.js b/src/routes/settings.js index b3818b330..f3c963042 100644 --- a/src/routes/settings.js +++ b/src/routes/settings.js @@ -19,6 +19,9 @@ exports = module.exports = { getTimeZone: getTimeZone, setTimeZone: setTimeZone, + getAppstore: getAppstore, + setAppstore: setAppstore, + setCertificate: setCertificate, setAdminCertificate: setAdminCertificate }; @@ -162,6 +165,33 @@ function setBackupConfig(req, res, next) { }); } +function getAppstore(req, res, next) { + settings.getAppstore(function (error, result) { + if (error) return next(new HttpError(500, error)); + + next(new HttpSuccess(200, result)); + }); +} + +function setAppstore(req, res, next) { + assert.strictEqual(typeof req.body, 'object'); + + if (typeof req.body.userId !== 'string') return next(new HttpError(400, 'userId is required')); + if (typeof req.body.token !== 'string') return next(new HttpError(400, 'token is required')); + + var options = { + userId: req.body.userId, + token: req.body.token + }; + + settings.setAppstore(options, 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)); + }); +} + // default fallback cert function setCertificate(req, res, next) { assert.strictEqual(typeof req.body, 'object'); diff --git a/src/server.js b/src/server.js index a02cd93b3..1bf03cef3 100644 --- a/src/server.js +++ b/src/server.js @@ -191,6 +191,8 @@ function initializeExpressSync() { router.post('/api/v1/settings/admin_certificate', settingsScope, routes.user.requireAdmin, routes.settings.setAdminCertificate); router.get ('/api/v1/settings/time_zone', settingsScope, routes.user.requireAdmin, routes.settings.getTimeZone); router.post('/api/v1/settings/time_zone', settingsScope, routes.user.requireAdmin, routes.settings.setTimeZone); + router.get ('/api/v1/settings/appstore', settingsScope, routes.user.requireAdmin, routes.settings.getAppstore); + router.post('/api/v1/settings/appstore', settingsScope, routes.user.requireAdmin, routes.settings.setAppstore); // eventlog route router.get('/api/v1/eventlog', settingsScope, routes.user.requireAdmin, routes.eventlog.get);