Files
cloudron-box/src/routes/cloudron.js
T

71 lines
2.1 KiB
JavaScript
Raw Normal View History

'use strict';
exports = module.exports = {
getStatus,
2023-08-04 13:41:13 +05:30
2023-08-10 16:20:33 +05:30
listLanguages,
getLanguage,
setLanguage,
2023-08-04 13:41:13 +05:30
getTimeZone,
setTimeZone
};
2021-06-04 09:28:40 -07:00
const assert = require('assert'),
2019-10-22 14:06:19 -07:00
BoxError = require('../boxerror.js'),
cloudron = require('../cloudron.js'),
HttpError = require('connect-lastmile').HttpError,
HttpSuccess = require('connect-lastmile').HttpSuccess,
2021-06-04 09:28:40 -07:00
safe = require('safetydance'),
2024-07-05 12:45:23 +02:00
translations = require('../translations.js');
2020-02-05 15:04:57 +01:00
async function getStatus(req, res, next) {
const [error, status] = await safe(cloudron.getStatus());
if (error) return next(BoxError.toHttpError(error));
next(new HttpSuccess(200, status));
}
2023-08-10 16:20:33 +05:30
async function listLanguages(req, res, next) {
2024-07-05 12:45:23 +02:00
const [error, languages] = await safe(translations.listLanguages());
2021-08-19 11:00:35 -07:00
if (error) return next(new BoxError.toHttpError(error));
2020-11-18 00:10:06 +01:00
2021-08-19 11:00:35 -07:00
next(new HttpSuccess(200, { languages }));
2020-11-18 00:10:06 +01:00
}
2021-02-24 18:42:39 -08:00
async function getTimeZone(req, res, next) {
const [error, timeZone] = await safe(cloudron.getTimeZone());
if (error) return next(BoxError.toHttpError(error));
next(new HttpSuccess(200, { timeZone }));
}
async function setTimeZone(req, res, next) {
assert.strictEqual(typeof req.body, 'object');
if (typeof req.body.timeZone !== 'string') return next(new HttpError(400, 'timeZone is required'));
const [error] = await safe(cloudron.setTimeZone(req.body.timeZone));
if (error) return next(BoxError.toHttpError(error));
next(new HttpSuccess(200, {}));
}
async function getLanguage(req, res, next) {
const [error, language] = await safe(cloudron.getLanguage());
if (error) return next(BoxError.toHttpError(error));
next(new HttpSuccess(200, { language }));
}
async function setLanguage(req, res, next) {
assert.strictEqual(typeof req.body, 'object');
if (!req.body.language || typeof req.body.language !== 'string') return next(new HttpError(400, 'language is required'));
const [error] = await safe(cloudron.setLanguage(req.body.language));
if (error) return next(BoxError.toHttpError(error));
next(new HttpSuccess(200, {}));
}