]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/extra-utils/server/plugins.ts
rename blacklist to block/blocklist, merge block and auto-block views
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / server / plugins.ts
index 7a5c5344b7b70cbf72d07f4649146209e816c1e6..b6b5e395826f648ec74016c80ba29a8a1aae380e 100644 (file)
@@ -7,13 +7,13 @@ import { root } from '../miscs/miscs'
 import { join } from 'path'
 
 function listPlugins (parameters: {
-  url: string,
-  accessToken: string,
-  start?: number,
-  count?: number,
-  sort?: string,
-  pluginType?: PluginType,
-  uninstalled?: boolean,
+  url: string
+  accessToken: string
+  start?: number
+  count?: number
+  sort?: string
+  pluginType?: PluginType
+  uninstalled?: boolean
   expectedStatus?: number
 }) {
   const { url, accessToken, start, count, sort, pluginType, uninstalled, expectedStatus = 200 } = parameters
@@ -35,13 +35,13 @@ function listPlugins (parameters: {
 }
 
 function listAvailablePlugins (parameters: {
-  url: string,
-  accessToken: string,
-  start?: number,
-  count?: number,
-  sort?: string,
-  pluginType?: PluginType,
-  currentPeerTubeEngine?: string,
+  url: string
+  accessToken: string
+  start?: number
+  count?: number
+  sort?: string
+  pluginType?: PluginType
+  currentPeerTubeEngine?: string
   search?: string
   expectedStatus?: number
 }) {
@@ -67,9 +67,9 @@ function listAvailablePlugins (parameters: {
 }
 
 function getPlugin (parameters: {
-  url: string,
-  accessToken: string,
-  npmName: string,
+  url: string
+  accessToken: string
+  npmName: string
   expectedStatus?: number
 }) {
   const { url, accessToken, npmName, expectedStatus = 200 } = parameters
@@ -84,10 +84,10 @@ function getPlugin (parameters: {
 }
 
 function updatePluginSettings (parameters: {
-  url: string,
-  accessToken: string,
-  npmName: string,
-  settings: any,
+  url: string
+  accessToken: string
+  npmName: string
+  settings: any
   expectedStatus?: number
 }) {
   const { url, accessToken, npmName, settings, expectedStatus = 204 } = parameters
@@ -103,9 +103,9 @@ function updatePluginSettings (parameters: {
 }
 
 function getPluginRegisteredSettings (parameters: {
-  url: string,
-  accessToken: string,
-  npmName: string,
+  url: string
+  accessToken: string
+  npmName: string
   expectedStatus?: number
 }) {
   const { url, accessToken, npmName, expectedStatus = 200 } = parameters
@@ -119,10 +119,40 @@ function getPluginRegisteredSettings (parameters: {
   })
 }
 
+function getPublicSettings (parameters: {
+  url: string
+  npmName: string
+  expectedStatus?: number
+}) {
+  const { url, npmName, expectedStatus = 200 } = parameters
+  const path = '/api/v1/plugins/' + npmName + '/public-settings'
+
+  return makeGetRequest({
+    url,
+    path,
+    statusCodeExpected: expectedStatus
+  })
+}
+
+function getPluginTranslations (parameters: {
+  url: string
+  locale: string
+  expectedStatus?: number
+}) {
+  const { url, locale, expectedStatus = 200 } = parameters
+  const path = '/plugins/translations/' + locale + '.json'
+
+  return makeGetRequest({
+    url,
+    path,
+    statusCodeExpected: expectedStatus
+  })
+}
+
 function installPlugin (parameters: {
-  url: string,
-  accessToken: string,
-  path?: string,
+  url: string
+  accessToken: string
+  path?: string
   npmName?: string
   expectedStatus?: number
 }) {
@@ -139,9 +169,9 @@ function installPlugin (parameters: {
 }
 
 function updatePlugin (parameters: {
-  url: string,
-  accessToken: string,
-  path?: string,
+  url: string
+  accessToken: string
+  path?: string
   npmName?: string
   expectedStatus?: number
 }) {
@@ -158,8 +188,8 @@ function updatePlugin (parameters: {
 }
 
 function uninstallPlugin (parameters: {
-  url: string,
-  accessToken: string,
+  url: string
+  accessToken: string
   npmName: string
   expectedStatus?: number
 }) {
@@ -201,10 +231,36 @@ function getPluginPackageJSON (server: ServerInfo, npmName: string) {
   return readJSON(path)
 }
 
+function getPluginTestPath (suffix = '') {
+  return join(root(), 'server', 'tests', 'fixtures', 'peertube-plugin-test' + suffix)
+}
+
+function getExternalAuth (options: {
+  url: string
+  npmName: string
+  npmVersion: string
+  authName: string
+  query?: any
+  statusCodeExpected?: number
+}) {
+  const { url, npmName, npmVersion, authName, statusCodeExpected, query } = options
+
+  const path = '/plugins/' + npmName + '/' + npmVersion + '/auth/' + authName
+
+  return makeGetRequest({
+    url,
+    path,
+    query,
+    statusCodeExpected: statusCodeExpected || 200,
+    redirects: 0
+  })
+}
+
 export {
   listPlugins,
   listAvailablePlugins,
   installPlugin,
+  getPluginTranslations,
   getPluginsCSS,
   updatePlugin,
   getPlugin,
@@ -213,5 +269,8 @@ export {
   getPluginRegisteredSettings,
   getPackageJSONPath,
   updatePluginPackageJSON,
-  getPluginPackageJSON
+  getPluginPackageJSON,
+  getPluginTestPath,
+  getPublicSettings,
+  getExternalAuth
 }