Files
cloudron-box/src/cloudron.js
Girish Ramakrishnan 12e073e8cf use node: prefix for requires
mostly because code is being autogenerated by all the AI stuff using
this prefix. it's also used in the stack trace.
2025-08-14 12:55:35 +05:30

54 lines
1.3 KiB
JavaScript

'use strict';
exports = module.exports = {
getStatus,
getTimeZone,
setTimeZone,
getLanguage,
setLanguage,
};
const assert = require('node:assert'),
BoxError = require('./boxerror.js'),
constants = require('./constants.js'),
cron = require('./cron.js'),
moment = require('moment-timezone'),
settings = require('./settings.js'),
translations = require('./translations.js');
async function getStatus() {
return {
version: constants.VERSION,
};
}
async function getTimeZone() {
const tz = await settings.get(settings.TIME_ZONE_KEY);
return tz || 'UTC';
}
async function setTimeZone(tz) {
assert.strictEqual(typeof tz, 'string');
if (moment.tz.names().indexOf(tz) === -1) throw new BoxError(BoxError.BAD_FIELD, 'Bad timeZone');
await settings.set(settings.TIME_ZONE_KEY, tz);
await cron.handleTimeZoneChanged(tz);
}
async function getLanguage() {
const value = await settings.get(settings.LANGUAGE_KEY);
return value || 'en';
}
async function setLanguage(language) {
assert.strictEqual(typeof language, 'string');
const languages = await translations.listLanguages();
if (languages.indexOf(language) === -1) throw new BoxError(BoxError.BAD_FIELD, 'Language not found');
await settings.set(settings.LANGUAGE_KEY, language);
}