]>
Commit | Line | Data |
---|---|---|
bc0d801b | 1 | import { PeerTubeHelpers } from '@server/typings/plugins' |
1b05d82d C |
2 | import { sequelizeTypescript } from '@server/initializers/database' |
3 | import { buildLogger } from '@server/helpers/logger' | |
ab3ead3a | 4 | import { VideoModel } from '@server/models/video/video' |
bc0d801b | 5 | |
1b05d82d C |
6 | function 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 | ||
19 | export { | |
20 | buildPluginHelpers | |
21 | } | |
22 | ||
23 | // --------------------------------------------------------------------------- | |
24 | ||
1b05d82d | 25 | function buildPluginLogger (npmName: string) { |
bc0d801b C |
26 | return buildLogger(npmName) |
27 | } | |
1b05d82d C |
28 | |
29 | function buildDatabaseHelpers () { | |
30 | return { | |
31 | query: sequelizeTypescript.query.bind(sequelizeTypescript) | |
32 | } | |
33 | } | |
ab3ead3a C |
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 | } |