X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fplugins%2Fregister-helpers.ts;h=1aaef36068486a892208a37db43b7660d1aa01a2;hb=f50bff17f5b69c576960360857e25224cea13c0a;hp=f4d40567611c9c4c7572a3bafc3bdca3a8f523ed;hpb=c729caf6cc34630877a0e5a1bda1719384cd0c8a;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/plugins/register-helpers.ts b/server/lib/plugins/register-helpers.ts index f4d405676..1aaef3606 100644 --- a/server/lib/plugins/register-helpers.ts +++ b/server/lib/plugins/register-helpers.ts @@ -1,4 +1,5 @@ import express from 'express' +import { Server } from 'http' import { logger } from '@server/helpers/logger' import { onExternalUserAuthenticated } from '@server/lib/auth/external-auth' import { VideoConstantManagerFactory } from '@server/lib/plugins/video-constant-manager-factory' @@ -8,7 +9,8 @@ import { RegisterServerAuthExternalResult, RegisterServerAuthPassOptions, RegisterServerExternalAuthenticatedResult, - RegisterServerOptions + RegisterServerOptions, + RegisterServerWebSocketRouteOptions } from '@server/types/plugins' import { EncoderOptionsBuilder, @@ -49,12 +51,15 @@ export class RegisterHelpers { private readonly onSettingsChangeCallbacks: SettingsChangeCallback[] = [] + private readonly webSocketRoutes: RegisterServerWebSocketRouteOptions[] = [] + private readonly router: express.Router private readonly videoConstantManagerFactory: VideoConstantManagerFactory constructor ( private readonly npmName: string, private readonly plugin: PluginModel, + private readonly server: Server, private readonly onHookAdded: (options: RegisterServerHookOptions) => void ) { this.router = express.Router() @@ -66,6 +71,7 @@ export class RegisterHelpers { const registerSetting = this.buildRegisterSetting() const getRouter = this.buildGetRouter() + const registerWebSocketRoute = this.buildRegisterWebSocketRoute() const settingsManager = this.buildSettingsManager() const storageManager = this.buildStorageManager() @@ -85,13 +91,14 @@ export class RegisterHelpers { const unregisterIdAndPassAuth = this.buildUnregisterIdAndPassAuth() const unregisterExternalAuth = this.buildUnregisterExternalAuth() - const peertubeHelpers = buildPluginHelpers(this.plugin, this.npmName) + const peertubeHelpers = buildPluginHelpers(this.server, this.plugin, this.npmName) return { registerHook, registerSetting, getRouter, + registerWebSocketRoute, settingsManager, storageManager, @@ -180,10 +187,20 @@ export class RegisterHelpers { return this.onSettingsChangeCallbacks } + getWebSocketRoutes () { + return this.webSocketRoutes + } + private buildGetRouter () { return () => this.router } + private buildRegisterWebSocketRoute () { + return (options: RegisterServerWebSocketRouteOptions) => { + this.webSocketRoutes.push(options) + } + } + private buildRegisterSetting () { return (options: RegisterServerSettingOptions) => { this.settings.push(options)