]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/extra-utils/videos/video-channels.ts
fix trending page scroll
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / videos / video-channels.ts
index 93a257bf9cf9d1abeee86ecc62a613e734374431..3ff445c2a2cd9cea18ca266f178a1bd2c2e9e15b 100644 (file)
@@ -1,10 +1,15 @@
-import * as request from 'supertest'
-import { VideoChannelCreate, VideoChannelUpdate } from '../../models/videos'
-import { updateAvatarRequest } from '../requests/requests'
-import { getMyUserInformation, ServerInfo } from '..'
-import { User } from '../..'
+/* eslint-disable @typescript-eslint/no-floating-promises */
 
-function getVideoChannelsList (url: string, start: number, count: number, sort?: string) {
+import * as request from 'supertest'
+import { VideoChannelUpdate } from '../../models/videos/channel/video-channel-update.model'
+import { VideoChannelCreate } from '../../models/videos/channel/video-channel-create.model'
+import { makeGetRequest, updateAvatarRequest } from '../requests/requests'
+import { ServerInfo } from '../server/servers'
+import { User } from '../../models/users/user.model'
+import { getMyUserInformation } from '../users/users'
+import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
+
+function getVideoChannelsList (url: string, start: number, count: number, sort?: string, withStats?: boolean) {
   const path = '/api/v1/video-channels'
 
   const req = request(url)
@@ -13,27 +18,55 @@ function getVideoChannelsList (url: string, start: number, count: number, sort?:
     .query({ count: count })
 
   if (sort) req.query({ sort })
+  if (withStats) req.query({ withStats })
 
   return req.set('Accept', 'application/json')
-            .expect(200)
+            .expect(HttpStatusCode.OK_200)
             .expect('Content-Type', /json/)
 }
 
-function getAccountVideoChannelsList (url: string, accountName: string, specialStatus = 200) {
+function getAccountVideoChannelsList (parameters: {
+  url: string
+  accountName: string
+  start?: number
+  count?: number
+  sort?: string
+  specialStatus?: HttpStatusCode
+  withStats?: boolean
+  search?: string
+}) {
+  const {
+    url,
+    accountName,
+    start,
+    count,
+    sort = 'createdAt',
+    specialStatus = HttpStatusCode.OK_200,
+    withStats = false,
+    search
+  } = parameters
+
   const path = '/api/v1/accounts/' + accountName + '/video-channels'
 
-  return request(url)
-    .get(path)
-    .set('Accept', 'application/json')
-    .expect(specialStatus)
-    .expect('Content-Type', /json/)
+  return makeGetRequest({
+    url,
+    path,
+    query: {
+      start,
+      count,
+      sort,
+      withStats,
+      search
+    },
+    statusCodeExpected: specialStatus
+  })
 }
 
 function addVideoChannel (
   url: string,
   token: string,
   videoChannelAttributesArg: VideoChannelCreate,
-  expectedStatus = 200
+  expectedStatus = HttpStatusCode.OK_200
 ) {
   const path = '/api/v1/video-channels/'
 
@@ -58,14 +91,15 @@ function updateVideoChannel (
   token: string,
   channelName: string,
   attributes: VideoChannelUpdate,
-  expectedStatus = 204
+  expectedStatus = HttpStatusCode.NO_CONTENT_204
 ) {
-  const body = {}
+  const body: any = {}
   const path = '/api/v1/video-channels/' + channelName
 
-  if (attributes.displayName) body['displayName'] = attributes.displayName
-  if (attributes.description) body['description'] = attributes.description
-  if (attributes.support) body['support'] = attributes.support
+  if (attributes.displayName) body.displayName = attributes.displayName
+  if (attributes.description) body.description = attributes.description
+  if (attributes.support) body.support = attributes.support
+  if (attributes.bulkVideosSupportUpdate) body.bulkVideosSupportUpdate = attributes.bulkVideosSupportUpdate
 
   return request(url)
     .put(path)
@@ -75,7 +109,7 @@ function updateVideoChannel (
     .expect(expectedStatus)
 }
 
-function deleteVideoChannel (url: string, token: string, channelName: string, expectedStatus = 204) {
+function deleteVideoChannel (url: string, token: string, channelName: string, expectedStatus = HttpStatusCode.NO_CONTENT_204) {
   const path = '/api/v1/video-channels/' + channelName
 
   return request(url)
@@ -91,14 +125,14 @@ function getVideoChannel (url: string, channelName: string) {
   return request(url)
     .get(path)
     .set('Accept', 'application/json')
-    .expect(200)
+    .expect(HttpStatusCode.OK_200)
     .expect('Content-Type', /json/)
 }
 
 function updateVideoChannelAvatar (options: {
-  url: string,
-  accessToken: string,
-  fixture: string,
+  url: string
+  accessToken: string
+  fixture: string
   videoChannelName: string | number
 }) {
 
@@ -112,7 +146,7 @@ function setDefaultVideoChannel (servers: ServerInfo[]) {
 
   for (const server of servers) {
     const p = getMyUserInformation(server.url, server.accessToken)
-      .then(res => server.videoChannel = (res.body as User).videoChannels[0])
+      .then(res => { server.videoChannel = (res.body as User).videoChannels[0] })
 
     tasks.push(p)
   }