-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 { makeDeleteRequest, makeGetRequest, updateImageRequest } from '../requests/requests'
+import { ServerInfo } from '../server/servers'
+import { MyUser, 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)
.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/'
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)
.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)
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,
+function updateVideoChannelImage (options: {
+ url: string
+ accessToken: string
+ fixture: string
videoChannelName: string | number
+ type: 'avatar' | 'banner'
}) {
+ const path = `/api/v1/video-channels/${options.videoChannelName}/${options.type}/pick`
- const path = '/api/v1/video-channels/' + options.videoChannelName + '/avatar/pick'
+ return updateImageRequest({ ...options, path, fieldname: options.type + 'file' })
+}
- return updateAvatarRequest(Object.assign(options, { path }))
+function deleteVideoChannelImage (options: {
+ url: string
+ accessToken: string
+ videoChannelName: string | number
+ type: 'avatar' | 'banner'
+}) {
+ const path = `/api/v1/video-channels/${options.videoChannelName}/${options.type}`
+
+ return makeDeleteRequest({
+ url: options.url,
+ token: options.accessToken,
+ path,
+ statusCodeExpected: 204
+ })
}
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)
}
return Promise.all(tasks)
}
+async function getDefaultVideoChannel (url: string, token: string) {
+ const res = await getMyUserInformation(url, token)
+
+ return (res.body as MyUser).videoChannels[0].id
+}
+
// ---------------------------------------------------------------------------
export {
- updateVideoChannelAvatar,
+ updateVideoChannelImage,
getVideoChannelsList,
getAccountVideoChannelsList,
addVideoChannel,
updateVideoChannel,
deleteVideoChannel,
getVideoChannel,
- setDefaultVideoChannel
+ setDefaultVideoChannel,
+ deleteVideoChannelImage,
+ getDefaultVideoChannel
}