Support logout and add id and pass tests
[oweals/peertube.git] / server / typings / plugins / register-server-option.model.ts
1 import { PluginSettingsManager } from '../../../shared/models/plugins/plugin-settings-manager.model'
2 import { PluginStorageManager } from '../../../shared/models/plugins/plugin-storage-manager.model'
3 import { RegisterServerHookOptions } from '../../../shared/models/plugins/register-server-hook.model'
4 import { RegisterServerSettingOptions } from '../../../shared/models/plugins/register-server-setting.model'
5 import { PluginVideoCategoryManager } from '../../../shared/models/plugins/plugin-video-category-manager.model'
6 import { PluginVideoLanguageManager } from '../../../shared/models/plugins/plugin-video-language-manager.model'
7 import { PluginVideoLicenceManager } from '../../../shared/models/plugins/plugin-video-licence-manager.model'
8 import { Logger } from 'winston'
9 import { Router } from 'express'
10 import { PluginVideoPrivacyManager } from '@shared/models/plugins/plugin-video-privacy-manager.model'
11 import { PluginPlaylistPrivacyManager } from '@shared/models/plugins/plugin-playlist-privacy-manager.model'
12 import {
13   RegisterServerAuthExternalOptions,
14   RegisterServerAuthExternalResult,
15   RegisterServerAuthPassOptions
16 } from '@shared/models/plugins/register-server-auth.model'
17
18 export type PeerTubeHelpers = {
19   logger: Logger
20
21   database: {
22     query: Function
23   }
24
25   videos: {
26     removeVideo: (videoId: number) => Promise<void>
27   }
28 }
29
30 export type RegisterServerOptions = {
31   registerHook: (options: RegisterServerHookOptions) => void
32
33   registerSetting: (options: RegisterServerSettingOptions) => void
34
35   settingsManager: PluginSettingsManager
36
37   storageManager: PluginStorageManager
38
39   videoCategoryManager: PluginVideoCategoryManager
40   videoLanguageManager: PluginVideoLanguageManager
41   videoLicenceManager: PluginVideoLicenceManager
42
43   videoPrivacyManager: PluginVideoPrivacyManager
44   playlistPrivacyManager: PluginPlaylistPrivacyManager
45
46   registerIdAndPassAuth: (options: RegisterServerAuthPassOptions) => void
47   registerExternalAuth: (options: RegisterServerAuthExternalOptions) => RegisterServerAuthExternalResult
48
49   // Get plugin router to create custom routes
50   // Base routes of this router are
51   //  * /plugins/:pluginName/:pluginVersion/router/...
52   //  * /plugins/:pluginName/router/...
53   getRouter(): Router
54
55   peertubeHelpers: PeerTubeHelpers
56 }