]>
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' |
5a7eecdd | 5 | import { WEBSERVER } from '@server/initializers/constants' |
bc0d801b | 6 | |
1b05d82d C |
7 | function buildPluginHelpers (npmName: string): PeerTubeHelpers { |
8 | const logger = buildPluginLogger(npmName) | |
9 | ||
10 | const database = buildDatabaseHelpers() | |
ab3ead3a | 11 | const videos = buildVideosHelpers() |
bc0d801b | 12 | |
5a7eecdd C |
13 | const config = buildConfigHelpers() |
14 | ||
bc0d801b | 15 | return { |
1b05d82d | 16 | logger, |
ab3ead3a | 17 | database, |
5a7eecdd C |
18 | videos, |
19 | config | |
bc0d801b C |
20 | } |
21 | } | |
22 | ||
23 | export { | |
24 | buildPluginHelpers | |
25 | } | |
26 | ||
27 | // --------------------------------------------------------------------------- | |
28 | ||
1b05d82d | 29 | function buildPluginLogger (npmName: string) { |
bc0d801b C |
30 | return buildLogger(npmName) |
31 | } | |
1b05d82d C |
32 | |
33 | function buildDatabaseHelpers () { | |
34 | return { | |
35 | query: sequelizeTypescript.query.bind(sequelizeTypescript) | |
36 | } | |
37 | } | |
ab3ead3a C |
38 | |
39 | function buildVideosHelpers () { | |
40 | return { | |
41 | removeVideo: (id: number) => { | |
42 | return sequelizeTypescript.transaction(async t => { | |
43 | const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(id, t) | |
44 | ||
45 | await video.destroy({ transaction: t }) | |
46 | }) | |
47 | } | |
48 | } | |
49 | } | |
5a7eecdd C |
50 | |
51 | function buildConfigHelpers () { | |
52 | return { | |
53 | getWebserverUrl () { | |
54 | return WEBSERVER.URL | |
55 | } | |
56 | } | |
57 | } |