diff --git a/src/routes/settings.js b/src/routes/settings.js index 4abf32281..2185eb466 100644 --- a/src/routes/settings.js +++ b/src/routes/settings.js @@ -16,6 +16,8 @@ exports = module.exports = { getBackupConfig: getBackupConfig, setBackupConfig: setBackupConfig, + getTimeZone: getTimeZone, + setCertificate: setCertificate, setAdminCertificate: setAdminCertificate }; @@ -69,6 +71,13 @@ function getCloudronName(req, res, next) { }); } +function getTimeZone(req, res, next) { + settings.getTimeZone(function (error, tz) { + if (error) return next(new HttpError(500, error)); + next(new HttpSuccess(200, { timeZone: tz })); + }); +} + function setCloudronAvatar(req, res, next) { assert.strictEqual(typeof req.files, 'object'); diff --git a/src/routes/test/settings-test.js b/src/routes/test/settings-test.js index 88ef5a6c8..4720d9b89 100644 --- a/src/routes/test/settings-test.js +++ b/src/routes/test/settings-test.js @@ -360,5 +360,17 @@ describe('Settings API', function () { done(); }); }); + + describe('time_zone', function () { + it('succeeds', function (done) { + superagent.get(SERVER_URL + '/api/v1/settings/time_zone') + .query({ access_token: token }) + .end(function (err, res) { + expect(res.statusCode).to.equal(200); + expect(res.body.timeZone).to.be('America/Los_Angeles'); + done(); + }); + }); + }); }); diff --git a/src/server.js b/src/server.js index 23cf59b02..e48921cff 100644 --- a/src/server.js +++ b/src/server.js @@ -176,6 +176,7 @@ function initializeExpressSync() { router.post('/api/v1/settings/backup_config', settingsScope, routes.settings.setBackupConfig); router.post('/api/v1/settings/certificate', settingsScope, routes.settings.setCertificate); router.post('/api/v1/settings/admin_certificate', settingsScope, routes.settings.setAdminCertificate); + router.get ('/api/v1/settings/time_zone', settingsScope, routes.settings.getTimeZone); // eventlog route router.get('/api/v1/eventlog', settingsScope, routes.user.requireAdmin, routes.eventlog.get);