]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - server/lib/plugins/plugin-helpers.ts
Add external login tests
[github/Chocobozzz/PeerTube.git] / server / lib / plugins / plugin-helpers.ts
... / ...
CommitLineData
1import { PeerTubeHelpers } from '@server/typings/plugins'
2import { sequelizeTypescript } from '@server/initializers/database'
3import { buildLogger } from '@server/helpers/logger'
4import { VideoModel } from '@server/models/video/video'
5
6function buildPluginHelpers (npmName: string): PeerTubeHelpers {
7 const logger = buildPluginLogger(npmName)
8
9 const database = buildDatabaseHelpers()
10 const videos = buildVideosHelpers()
11
12 return {
13 logger,
14 database,
15 videos
16 }
17}
18
19export {
20 buildPluginHelpers
21}
22
23// ---------------------------------------------------------------------------
24
25function buildPluginLogger (npmName: string) {
26 return buildLogger(npmName)
27}
28
29function buildDatabaseHelpers () {
30 return {
31 query: sequelizeTypescript.query.bind(sequelizeTypescript)
32 }
33}
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}