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'
6 function buildPluginHelpers (npmName: string): PeerTubeHelpers {
7 const logger = buildPluginLogger(npmName)
9 const database = buildDatabaseHelpers()
10 const videos = buildVideosHelpers()
23 // ---------------------------------------------------------------------------
25 function buildPluginLogger (npmName: string) {
26 return buildLogger(npmName)
29 function buildDatabaseHelpers () {
31 query: sequelizeTypescript.query.bind(sequelizeTypescript)
35 function buildVideosHelpers () {
37 removeVideo: (id: number) => {
38 return sequelizeTypescript.transaction(async t => {
39 const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(id, t)
41 await video.destroy({ transaction: t })