From b5f919ac8eb2a1c20e26582fdfd377d687710d8f Mon Sep 17 00:00:00 2001
From: Chocobozzz <me@florianbigard.com>
Date: Fri, 12 Jul 2019 11:39:58 +0200
Subject: WIP plugins: update plugin

---
 shared/extra-utils/server/plugins.ts           | 22 +++++++++++++++++++++-
 shared/models/plugins/install-plugin.model.ts  |  2 +-
 shared/models/plugins/peertube-plugin.model.ts |  1 +
 3 files changed, 23 insertions(+), 2 deletions(-)

(limited to 'shared')

diff --git a/shared/extra-utils/server/plugins.ts b/shared/extra-utils/server/plugins.ts
index 6cd7cd17a..1da313ab7 100644
--- a/shared/extra-utils/server/plugins.ts
+++ b/shared/extra-utils/server/plugins.ts
@@ -85,7 +85,7 @@ function installPlugin (parameters: {
   npmName?: string
   expectedStatus?: number
 }) {
-  const { url, accessToken, npmName, path, expectedStatus = 204 } = parameters
+  const { url, accessToken, npmName, path, expectedStatus = 200 } = parameters
   const apiPath = '/api/v1/plugins/install'
 
   return makePostBodyRequest({
@@ -97,6 +97,25 @@ function installPlugin (parameters: {
   })
 }
 
+function updatePlugin (parameters: {
+  url: string,
+  accessToken: string,
+  path?: string,
+  npmName?: string
+  expectedStatus?: number
+}) {
+  const { url, accessToken, npmName, path, expectedStatus = 200 } = parameters
+  const apiPath = '/api/v1/plugins/update'
+
+  return makePostBodyRequest({
+    url,
+    path: apiPath,
+    token: accessToken,
+    fields: { npmName, path },
+    statusCodeExpected: expectedStatus
+  })
+}
+
 function uninstallPlugin (parameters: {
   url: string,
   accessToken: string,
@@ -118,6 +137,7 @@ function uninstallPlugin (parameters: {
 export {
   listPlugins,
   installPlugin,
+  updatePlugin,
   getPlugin,
   uninstallPlugin,
   getPluginSettings,
diff --git a/shared/models/plugins/install-plugin.model.ts b/shared/models/plugins/install-plugin.model.ts
index b1b46fa08..5a268ebe1 100644
--- a/shared/models/plugins/install-plugin.model.ts
+++ b/shared/models/plugins/install-plugin.model.ts
@@ -1,4 +1,4 @@
-export interface InstallPlugin {
+export interface InstallOrUpdatePlugin {
   npmName?: string
   path?: string
 }
diff --git a/shared/models/plugins/peertube-plugin.model.ts b/shared/models/plugins/peertube-plugin.model.ts
index de3c7741b..e3c100027 100644
--- a/shared/models/plugins/peertube-plugin.model.ts
+++ b/shared/models/plugins/peertube-plugin.model.ts
@@ -1,6 +1,7 @@
 export interface PeerTubePlugin {
   name: string
   type: number
+  latestVersion: string
   version: string
   enabled: boolean
   uninstalled: boolean
-- 
cgit v1.2.3