aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared/models/plugins/server
diff options
context:
space:
mode:
authorlutangar <johan.dufour@gmail.com>2021-06-29 16:02:05 +0200
committerlutangar <johan.dufour@gmail.com>2021-07-16 17:49:40 +0200
commitdc3d902234bb73fbc8cf9787e3036f2012526e6c (patch)
tree58ab2812fa5b38f4e19376f1a7cf3d718f3003fb /shared/models/plugins/server
parentde15b052c59cbd4b99bca835b124485ca1af399e (diff)
downloadPeerTube-dc3d902234bb73fbc8cf9787e3036f2012526e6c.tar.gz
PeerTube-dc3d902234bb73fbc8cf9787e3036f2012526e6c.tar.zst
PeerTube-dc3d902234bb73fbc8cf9787e3036f2012526e6c.zip
Introduce generic video constant manager for plugins
Allow a plugin developer to get back constants values, and reset constants deletions or additions.
Diffstat (limited to 'shared/models/plugins/server')
-rw-r--r--shared/models/plugins/server/managers/plugin-playlist-privacy-manager.model.ts12
-rw-r--r--shared/models/plugins/server/managers/plugin-video-category-manager.model.ts10
-rw-r--r--shared/models/plugins/server/managers/plugin-video-language-manager.model.ts10
-rw-r--r--shared/models/plugins/server/managers/plugin-video-licence-manager.model.ts10
-rw-r--r--shared/models/plugins/server/managers/plugin-video-privacy-manager.model.ts14
-rw-r--r--shared/models/plugins/server/plugin-constant-manager.model.ts7
6 files changed, 51 insertions, 12 deletions
diff --git a/shared/models/plugins/server/managers/plugin-playlist-privacy-manager.model.ts b/shared/models/plugins/server/managers/plugin-playlist-privacy-manager.model.ts
index 4703c0a8b..5b3b37752 100644
--- a/shared/models/plugins/server/managers/plugin-playlist-privacy-manager.model.ts
+++ b/shared/models/plugins/server/managers/plugin-playlist-privacy-manager.model.ts
@@ -1,8 +1,12 @@
1import { VideoPlaylistPrivacy } from '../../../videos/playlist/video-playlist-privacy.model' 1import { VideoPlaylistPrivacy } from '../../../videos/playlist/video-playlist-privacy.model'
2import { ConstantManager } from '@shared/models/plugins/server/plugin-constant-manager.model'
2 3
3export interface PluginPlaylistPrivacyManager { 4export interface PluginPlaylistPrivacyManager extends ConstantManager<VideoPlaylistPrivacy> {
4 // PUBLIC = 1, 5 /**
5 // UNLISTED = 2, 6 * PUBLIC = 1,
6 // PRIVATE = 3 7 * UNLISTED = 2,
8 * PRIVATE = 3
9 * @deprecated use `deleteConstant` instead
10 */
7 deletePlaylistPrivacy: (privacyKey: VideoPlaylistPrivacy) => boolean 11 deletePlaylistPrivacy: (privacyKey: VideoPlaylistPrivacy) => boolean
8} 12}
diff --git a/shared/models/plugins/server/managers/plugin-video-category-manager.model.ts b/shared/models/plugins/server/managers/plugin-video-category-manager.model.ts
index 201bfa979..069ad1476 100644
--- a/shared/models/plugins/server/managers/plugin-video-category-manager.model.ts
+++ b/shared/models/plugins/server/managers/plugin-video-category-manager.model.ts
@@ -1,5 +1,13 @@
1export interface PluginVideoCategoryManager { 1import { ConstantManager } from '@shared/models/plugins/server/plugin-constant-manager.model'
2
3export interface PluginVideoCategoryManager extends ConstantManager<number> {
4 /**
5 * @deprecated use `addConstant` instead
6 */
2 addCategory: (categoryKey: number, categoryLabel: string) => boolean 7 addCategory: (categoryKey: number, categoryLabel: string) => boolean
3 8
9 /**
10 * @deprecated use `deleteConstant` instead
11 */
4 deleteCategory: (categoryKey: number) => boolean 12 deleteCategory: (categoryKey: number) => boolean
5} 13}
diff --git a/shared/models/plugins/server/managers/plugin-video-language-manager.model.ts b/shared/models/plugins/server/managers/plugin-video-language-manager.model.ts
index 3fd577a79..969c6c670 100644
--- a/shared/models/plugins/server/managers/plugin-video-language-manager.model.ts
+++ b/shared/models/plugins/server/managers/plugin-video-language-manager.model.ts
@@ -1,5 +1,13 @@
1export interface PluginVideoLanguageManager { 1import { ConstantManager } from '@shared/models/plugins/server/plugin-constant-manager.model'
2
3export interface PluginVideoLanguageManager extends ConstantManager<string> {
4 /**
5 * @deprecated use `addConstant` instead
6 */
2 addLanguage: (languageKey: string, languageLabel: string) => boolean 7 addLanguage: (languageKey: string, languageLabel: string) => boolean
3 8
9 /**
10 * @deprecated use `deleteConstant` instead
11 */
4 deleteLanguage: (languageKey: string) => boolean 12 deleteLanguage: (languageKey: string) => boolean
5} 13}
diff --git a/shared/models/plugins/server/managers/plugin-video-licence-manager.model.ts b/shared/models/plugins/server/managers/plugin-video-licence-manager.model.ts
index 82a634d3a..900a49661 100644
--- a/shared/models/plugins/server/managers/plugin-video-licence-manager.model.ts
+++ b/shared/models/plugins/server/managers/plugin-video-licence-manager.model.ts
@@ -1,5 +1,13 @@
1export interface PluginVideoLicenceManager { 1import { ConstantManager } from '@shared/models/plugins/server/plugin-constant-manager.model'
2
3export interface PluginVideoLicenceManager extends ConstantManager<number> {
4 /**
5 * @deprecated use `addLicence` instead
6 */
2 addLicence: (licenceKey: number, licenceLabel: string) => boolean 7 addLicence: (licenceKey: number, licenceLabel: string) => boolean
3 8
9 /**
10 * @deprecated use `deleteLicence` instead
11 */
4 deleteLicence: (licenceKey: number) => boolean 12 deleteLicence: (licenceKey: number) => boolean
5} 13}
diff --git a/shared/models/plugins/server/managers/plugin-video-privacy-manager.model.ts b/shared/models/plugins/server/managers/plugin-video-privacy-manager.model.ts
index 7717115e3..e26e48a53 100644
--- a/shared/models/plugins/server/managers/plugin-video-privacy-manager.model.ts
+++ b/shared/models/plugins/server/managers/plugin-video-privacy-manager.model.ts
@@ -1,9 +1,13 @@
1import { VideoPrivacy } from '../../../videos/video-privacy.enum' 1import { VideoPrivacy } from '../../../videos/video-privacy.enum'
2import { ConstantManager } from '@shared/models/plugins/server/plugin-constant-manager.model'
2 3
3export interface PluginVideoPrivacyManager { 4export interface PluginVideoPrivacyManager extends ConstantManager<VideoPrivacy> {
4 // PUBLIC = 1 5 /**
5 // UNLISTED = 2 6 * PUBLIC = 1,
6 // PRIVATE = 3 7 * UNLISTED = 2,
7 // INTERNAL = 4 8 * PRIVATE = 3
9 * INTERNAL = 4
10 * @deprecated use `deleteConstant` instead
11 */
8 deletePrivacy: (privacyKey: VideoPrivacy) => boolean 12 deletePrivacy: (privacyKey: VideoPrivacy) => boolean
9} 13}
diff --git a/shared/models/plugins/server/plugin-constant-manager.model.ts b/shared/models/plugins/server/plugin-constant-manager.model.ts
new file mode 100644
index 000000000..4de3ce38f
--- /dev/null
+++ b/shared/models/plugins/server/plugin-constant-manager.model.ts
@@ -0,0 +1,7 @@
1export interface ConstantManager <K extends string | number> {
2 addConstant: (key: K, label: string) => boolean
3 deleteConstant: (key: K) => boolean
4 getConstantValue: (key: K) => string
5 getConstants: () => Record<K, string>
6 resetConstants: () => void
7}