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 { makeDeleteRequest, makeGetRequest, updateImageRequest } from '../requests/requests'
import { ServerInfo } from '../server/servers'
-import { User } from '../../models/users/user.model'
+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) {
+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/)
}
start?: number
count?: number
sort?: string
- specialStatus?: number
+ specialStatus?: HttpStatusCode
+ withStats?: boolean
+ search?: string
}) {
- const { url, accountName, start, count, sort = 'createdAt', specialStatus = 200 } = parameters
+ const {
+ url,
+ accountName,
+ start,
+ count,
+ sort = 'createdAt',
+ specialStatus = HttpStatusCode.OK_200,
+ withStats = false,
+ search
+ } = parameters
const path = '/api/v1/accounts/' + accountName + '/video-channels'
query: {
start,
count,
- sort
+ sort,
+ withStats,
+ search
},
statusCodeExpected: specialStatus
})
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: any = {}
const path = '/api/v1/video-channels/' + channelName
.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: {
+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`
+
+ return updateImageRequest({ ...options, path, fieldname: options.type + 'file' })
+}
- const path = '/api/v1/video-channels/' + options.videoChannelName + '/avatar/pick'
+function deleteVideoChannelImage (options: {
+ url: string
+ accessToken: string
+ videoChannelName: string | number
+ type: 'avatar' | 'banner'
+}) {
+ const path = `/api/v1/video-channels/${options.videoChannelName}/${options.type}`
- return updateAvatarRequest(Object.assign(options, { path }))
+ return makeDeleteRequest({
+ url: options.url,
+ token: options.accessToken,
+ path,
+ statusCodeExpected: 204
+ })
}
function setDefaultVideoChannel (servers: ServerInfo[]) {
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
}