]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/lib/plugins/plugin-helpers.ts
Add external login tests
[github/Chocobozzz/PeerTube.git] / server / lib / plugins / plugin-helpers.ts
CommitLineData
bc0d801b 1import { PeerTubeHelpers } from '@server/typings/plugins'
1b05d82d
C
2import { sequelizeTypescript } from '@server/initializers/database'
3import { buildLogger } from '@server/helpers/logger'
ab3ead3a 4import { VideoModel } from '@server/models/video/video'
bc0d801b 5
1b05d82d
C
6function buildPluginHelpers (npmName: string): PeerTubeHelpers {
7 const logger = buildPluginLogger(npmName)
8
9 const database = buildDatabaseHelpers()
ab3ead3a 10 const videos = buildVideosHelpers()
bc0d801b
C
11
12 return {
1b05d82d 13 logger,
ab3ead3a
C
14 database,
15 videos
bc0d801b
C
16 }
17}
18
19export {
20 buildPluginHelpers
21}
22
23// ---------------------------------------------------------------------------
24
1b05d82d 25function buildPluginLogger (npmName: string) {
bc0d801b
C
26 return buildLogger(npmName)
27}
1b05d82d
C
28
29function buildDatabaseHelpers () {
30 return {
31 query: sequelizeTypescript.query.bind(sequelizeTypescript)
32 }
33}
ab3ead3a
C
34
35function buildVideosHelpers () {
36 return {
37 removeVideo: (id: number) => {
38 return sequelizeTypescript.transaction(async t => {
39 const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(id, t)
40
41 await video.destroy({ transaction: t })
42 })
43 }
44 }
45}