]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/extra-utils/server/redundancy.ts
Add overview of a user's actions in user-edit (#2558)
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / server / redundancy.ts
index c39ff2c8be4baaa477dfa5fa1736c563aa2fc621..08467e4c0ad58b26b984ca9d3d5baaed32031772 100644 (file)
@@ -1,6 +1,7 @@
-import { makePutBodyRequest } from '../requests/requests'
+import { makeDeleteRequest, makeGetRequest, makePostBodyRequest, makePutBodyRequest } from '../requests/requests'
+import { VideoRedundanciesTarget } from '@shared/models'
 
-async function updateRedundancy (url: string, accessToken: string, host: string, redundancyAllowed: boolean, expectedStatus = 204) {
+function updateRedundancy (url: string, accessToken: string, host: string, redundancyAllowed: boolean, expectedStatus = 204) {
   const path = '/api/v1/server/redundancy/' + host
 
   return makePutBodyRequest({
@@ -12,6 +13,69 @@ async function updateRedundancy (url: string, accessToken: string, host: string,
   })
 }
 
+function listVideoRedundancies (options: {
+  url: string
+  accessToken: string
+  target: VideoRedundanciesTarget
+  start?: number
+  count?: number
+  sort?: string
+  statusCodeExpected?: number
+}) {
+  const path = '/api/v1/server/redundancy/videos'
+
+  const { url, accessToken, target, statusCodeExpected, start, count, sort } = options
+
+  return makeGetRequest({
+    url,
+    token: accessToken,
+    path,
+    query: {
+      start: start ?? 0,
+      count: count ?? 5,
+      sort: sort ?? 'name',
+      target
+    },
+    statusCodeExpected: statusCodeExpected || 200
+  })
+}
+
+function addVideoRedundancy (options: {
+  url: string
+  accessToken: string
+  videoId: number
+}) {
+  const path = '/api/v1/server/redundancy/videos'
+  const { url, accessToken, videoId } = options
+
+  return makePostBodyRequest({
+    url,
+    token: accessToken,
+    path,
+    fields: { videoId },
+    statusCodeExpected: 204
+  })
+}
+
+function removeVideoRedundancy (options: {
+  url: string
+  accessToken: string
+  redundancyId: number
+}) {
+  const { url, accessToken, redundancyId } = options
+  const path = '/api/v1/server/redundancy/videos/' + redundancyId
+
+  return makeDeleteRequest({
+    url,
+    token: accessToken,
+    path,
+    statusCodeExpected: 204
+  })
+}
+
 export {
-  updateRedundancy
+  updateRedundancy,
+  listVideoRedundancies,
+  addVideoRedundancy,
+  removeVideoRedundancy
 }