X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fconfig.ts;h=21fa85a085a3ece6acbd41bf74a433f2f0ddfdfd;hb=66170ca8c64fa4e76f3830e4a02a11345a03093b;hp=81518bbb54332a3987ace41c61542e35a569de60;hpb=ffb321bedca46d6987c7b31dd58e5dea96ea2ea2;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/config.ts b/server/controllers/api/config.ts index 81518bbb5..21fa85a08 100644 --- a/server/controllers/api/config.ts +++ b/server/controllers/api/config.ts @@ -4,7 +4,7 @@ import { ServerConfig, UserRight } from '../../../shared' import { About } from '../../../shared/models/server/about.model' import { CustomConfig } from '../../../shared/models/server/custom-config.model' import { isSignupAllowed, isSignupAllowedForCurrentIP } from '../../helpers/signup' -import { CONSTRAINTS_FIELDS, DEFAULT_THEME_NAME } from '../../initializers/constants' +import { CONSTRAINTS_FIELDS, DEFAULT_THEME_NAME, PEERTUBE_VERSION } from '../../initializers/constants' import { asyncMiddleware, authenticate, ensureUserHasRight } from '../../middlewares' import { customConfigUpdateValidator } from '../../middlewares/validators/config' import { ClientHtml } from '../../lib/client-html' @@ -18,7 +18,6 @@ import { CONFIG, reloadConfig } from '../../initializers/config' import { PluginManager } from '../../lib/plugins/plugin-manager' import { getThemeOrDefault } from '../../lib/plugins/theme-utils' -const packageJSON = require('../../../../package.json') const configRouter = express.Router() const auditLogger = auditLoggerFactory('config') @@ -46,35 +45,14 @@ configRouter.delete('/custom', ) let serverCommit: string + async function getConfig (req: express.Request, res: express.Response) { const allowed = await isSignupAllowed() const allowedForCurrentIP = isSignupAllowedForCurrentIP(req.ip) + const defaultTheme = getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME) if (serverCommit === undefined) serverCommit = await getServerCommit() - const enabledResolutions = Object.keys(CONFIG.TRANSCODING.RESOLUTIONS) - .filter(key => CONFIG.TRANSCODING.ENABLED && CONFIG.TRANSCODING.RESOLUTIONS[key] === true) - .map(r => parseInt(r, 10)) - - const registeredPlugins = PluginManager.Instance.getRegisteredPlugins() - .map(p => ({ - name: p.name, - version: p.version, - description: p.description, - clientScripts: p.clientScripts - })) - - const registeredThemes = PluginManager.Instance.getRegisteredThemes() - .map(t => ({ - name: t.name, - version: t.version, - description: t.description, - css: t.css, - clientScripts: t.clientScripts - })) - - const defaultTheme = getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME) - const json: ServerConfig = { instance: { name: CONFIG.INSTANCE.NAME, @@ -88,10 +66,10 @@ async function getConfig (req: express.Request, res: express.Response) { } }, plugin: { - registered: registeredPlugins + registered: getRegisteredPlugins() }, theme: { - registered: registeredThemes, + registered: getRegisteredThemes(), default: defaultTheme }, email: { @@ -100,7 +78,7 @@ async function getConfig (req: express.Request, res: express.Response) { contactForm: { enabled: CONFIG.CONTACT_FORM.ENABLED }, - serverVersion: packageJSON.version, + serverVersion: PEERTUBE_VERSION, serverCommit, signup: { allowed, @@ -111,7 +89,7 @@ async function getConfig (req: express.Request, res: express.Response) { hls: { enabled: CONFIG.TRANSCODING.HLS.ENABLED }, - enabledResolutions + enabledResolutions: getEnabledResolutions() }, import: { videos: { @@ -342,3 +320,30 @@ function convertCustomConfigBody (body: CustomConfig) { return objectConverter(body, keyConverter, valueConverter) } + +function getRegisteredThemes () { + return PluginManager.Instance.getRegisteredThemes() + .map(t => ({ + name: t.name, + version: t.version, + description: t.description, + css: t.css, + clientScripts: t.clientScripts + })) +} + +function getEnabledResolutions () { + return Object.keys(CONFIG.TRANSCODING.RESOLUTIONS) + .filter(key => CONFIG.TRANSCODING.ENABLED && CONFIG.TRANSCODING.RESOLUTIONS[ key ] === true) + .map(r => parseInt(r, 10)) +} + +function getRegisteredPlugins () { + return PluginManager.Instance.getRegisteredPlugins() + .map(p => ({ + name: p.name, + version: p.version, + description: p.description, + clientScripts: p.clientScripts + })) +}