1 import { PeerTubeHelpers } from '@server/typings/plugins'
2 import { sequelizeTypescript } from '@server/initializers/database'
3 import { buildLogger } from '@server/helpers/logger'
4 import { VideoModel } from '@server/models/video/video'
5 import { WEBSERVER } from '@server/initializers/constants'
7 function buildPluginHelpers (npmName: string): PeerTubeHelpers {
8 const logger = buildPluginLogger(npmName)
10 const database = buildDatabaseHelpers()
11 const videos = buildVideosHelpers()
13 const config = buildConfigHelpers()
27 // ---------------------------------------------------------------------------
29 function buildPluginLogger (npmName: string) {
30 return buildLogger(npmName)
33 function buildDatabaseHelpers () {
35 query: sequelizeTypescript.query.bind(sequelizeTypescript)
39 function buildVideosHelpers () {
41 removeVideo: (id: number) => {
42 return sequelizeTypescript.transaction(async t => {
43 const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(id, t)
45 await video.destroy({ transaction: t })
51 function buildConfigHelpers () {