]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/types/plugins/register-server-option.model.ts
Merge branch 'develop' into shorter-URLs-channels-accounts
[github/Chocobozzz/PeerTube.git] / server / types / plugins / register-server-option.model.ts
CommitLineData
7d9ba5c0 1import { Response, Router } from 'express'
80fdaf06 2import { Logger } from 'winston'
7d9ba5c0 3import { ActorModel } from '@server/models/actor/actor'
67ed6552
C
4import {
5 PluginPlaylistPrivacyManager,
6 PluginSettingsManager,
7 PluginStorageManager,
1896bca0 8 PluginTranscodingManager,
67ed6552
C
9 PluginVideoCategoryManager,
10 PluginVideoLanguageManager,
11 PluginVideoLicenceManager,
12 PluginVideoPrivacyManager,
13 RegisterServerHookOptions,
14 RegisterServerSettingOptions,
22820226 15 ServerConfig,
302eba0d 16 UserRole,
67ed6552
C
17 VideoBlacklistCreate
18} from '@shared/models'
19import { MVideoThumbnail } from '../models'
e1c55031
C
20import {
21 RegisterServerAuthExternalOptions,
22 RegisterServerAuthExternalResult,
23 RegisterServerAuthPassOptions
67ed6552 24} from './register-server-auth.model'
bc0d801b
C
25
26export type PeerTubeHelpers = {
27 logger: Logger
1b05d82d
C
28
29 database: {
30 query: Function
31 }
ab3ead3a
C
32
33 videos: {
b49f22d8 34 loadByUrl: (url: string) => Promise<MVideoThumbnail>
6559da28 35 loadByIdOrUUID: (id: number | string) => Promise<MVideoThumbnail>
80fdaf06 36
ab3ead3a
C
37 removeVideo: (videoId: number) => Promise<void>
38 }
5a7eecdd
C
39
40 config: {
41 getWebserverUrl: () => string
22820226
C
42
43 getServerConfig: () => Promise<ServerConfig>
5a7eecdd 44 }
80fdaf06
C
45
46 moderation: {
47 blockServer: (options: { byAccountId: number, hostToBlock: string }) => Promise<void>
48 unblockServer: (options: { byAccountId: number, hostToUnblock: string }) => Promise<void>
49 blockAccount: (options: { byAccountId: number, handleToBlock: string }) => Promise<void>
50 unblockAccount: (options: { byAccountId: number, handleToUnblock: string }) => Promise<void>
51
52 blacklistVideo: (options: { videoIdOrUUID: number | string, createOptions: VideoBlacklistCreate }) => Promise<void>
53 unblacklistVideo: (options: { videoIdOrUUID: number | string }) => Promise<void>
54 }
55
56 server: {
57 getServerActor: () => Promise<ActorModel>
58 }
22820226
C
59
60 plugin: {
096231d0 61 // PeerTube >= 3.2
22820226 62 getBaseStaticRoute: () => string
302eba0d 63
096231d0 64 // PeerTube >= 3.2
302eba0d
C
65 getBaseRouterRoute: () => string
66
096231d0 67 // PeerTube >= 3.2
302eba0d
C
68 getDataDirectoryPath: () => string
69 }
70
71 user: {
096231d0 72 // PeerTube >= 3.2
b31d7262 73 getAuthUser: (response: Response) => Promise<{
302eba0d
C
74 id?: string
75 username: string
76 email: string
77 blocked: boolean
78 role: UserRole
b31d7262 79 } | undefined>
22820226 80 }
bc0d801b 81}
32fe0013 82
9ae88819
C
83export type RegisterServerOptions = {
84 registerHook: (options: RegisterServerHookOptions) => void
32fe0013 85
9ae88819 86 registerSetting: (options: RegisterServerSettingOptions) => void
32fe0013
C
87
88 settingsManager: PluginSettingsManager
89
90 storageManager: PluginStorageManager
91
ee286591
C
92 videoCategoryManager: PluginVideoCategoryManager
93 videoLanguageManager: PluginVideoLanguageManager
94 videoLicenceManager: PluginVideoLicenceManager
95
b3af2601
C
96 videoPrivacyManager: PluginVideoPrivacyManager
97 playlistPrivacyManager: PluginPlaylistPrivacyManager
98
1896bca0
C
99 transcodingManager: PluginTranscodingManager
100
7fed6375
C
101 registerIdAndPassAuth: (options: RegisterServerAuthPassOptions) => void
102 registerExternalAuth: (options: RegisterServerAuthExternalOptions) => RegisterServerAuthExternalResult
a4995eb7
C
103 unregisterIdAndPassAuth: (authName: string) => void
104 unregisterExternalAuth: (authName: string) => void
7fed6375 105
5e2b2e27
C
106 // Get plugin router to create custom routes
107 // Base routes of this router are
108 // * /plugins/:pluginName/:pluginVersion/router/...
109 // * /plugins/:pluginName/router/...
110 getRouter(): Router
111
bc0d801b 112 peertubeHelpers: PeerTubeHelpers
32fe0013 113}