]>
Commit | Line | Data |
---|---|---|
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 | ||
6 | function 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 | ||
19 | export { | |
20 | buildPluginHelpers | |
21 | } | |
22 | ||
23 | // --------------------------------------------------------------------------- | |
24 | ||
25 | function buildPluginLogger (npmName: string) { | |
26 | return buildLogger(npmName) | |
27 | } | |
28 | ||
29 | function buildDatabaseHelpers () { | |
30 | return { | |
31 | query: sequelizeTypescript.query.bind(sequelizeTypescript) | |
32 | } | |
33 | } | |
34 | ||
35 | function 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 | } |