diff --git a/server/lib/prosody/config.ts b/server/lib/prosody/config.ts index e8fdfe20..e6c21ffa 100644 --- a/server/lib/prosody/config.ts +++ b/server/lib/prosody/config.ts @@ -1,6 +1,6 @@ import * as fs from 'fs' import * as path from 'path' -import { pluginName } from '../helpers' +import { pluginName, getBaseRouter } from '../helpers' type LogMode = 'debug' | 'info' @@ -114,15 +114,15 @@ async function getProsodyConfig (options: RegisterServerOptions): Promise ' "' + m.module + '";').join('\n') const mucModulesOptions: string = mucModules.map(m => { diff --git a/server/lib/routers/api.ts b/server/lib/routers/api.ts new file mode 100644 index 00000000..d61ff1da --- /dev/null +++ b/server/lib/routers/api.ts @@ -0,0 +1,43 @@ +import type { Router, Request, Response, NextFunction } from 'express' + +// See here for description: https://modules.prosody.im/mod_muc_http_defaults.html +interface RoomDefaults { + name: string + description: string + // language: string + // persistent: boolean + public: boolean + // members_only: boolean + // allow_member_invites: boolean + // public_jids: boolean + subject: string + // changesubject: boolean + // // historylength: number + // moderated: boolean + // archiving: boolean + // affiliations: RoomAffiliation[] +} + +async function initApiRouter (options: RegisterServerOptions): Promise { + const { peertubeHelpers, getRouter } = options + const router = getRouter() + const logger = peertubeHelpers.logger + + router.get('/room', async (_req: Request, res: Response, _next: NextFunction) => { + logger.info('Requesting room information for room ...') + // TODO: check if room is legit and fill informations + const roomDefaults: RoomDefaults = { + name: 'name_of_the_room', + description: 'room description', + public: false, + subject: 'subject' + } + res.json(roomDefaults) + }) + + return router +} + +export { + initApiRouter +} diff --git a/server/lib/routers/index.ts b/server/lib/routers/index.ts index 15b3a5c3..a4972627 100644 --- a/server/lib/routers/index.ts +++ b/server/lib/routers/index.ts @@ -1,6 +1,7 @@ import type { NextFunction, Request, Response } from 'express' import { initWebchatRouter } from './webchat' import { initSettingsRouter } from './settings' +import { initApiRouter } from './api' async function initRouters (options: RegisterServerOptions): Promise { const { getRouter } = options @@ -10,6 +11,7 @@ async function initRouters (options: RegisterServerOptions): Promise { router.use('/webchat', await initWebchatRouter(options)) router.use('/settings', await initSettingsRouter(options)) + router.use('/api', await initApiRouter(options)) } export {