1
0
Fork 0

Upload a video to /videos/upload

This is an action, not a REST endpoint
This commit is contained in:
Chocobozzz 2017-09-07 21:46:44 +02:00
parent 0cee28c1b2
commit e95561cdf1
6 changed files with 49 additions and 28 deletions

View File

@ -95,7 +95,7 @@ export class VideoAddComponent extends FormReactive implements OnInit {
this.uploader = new FileUploader({
authToken: this.authService.getRequestHeaderValue(),
queueLimit: 1,
url: API_URL + '/api/v1/videos',
url: API_URL + '/api/v1/videos/upload',
removeAfterUpload: true
})
@ -166,7 +166,7 @@ export class VideoAddComponent extends FormReactive implements OnInit {
}
item.onError = (response: string, status: number) => {
// We need to handle manually these cases beceause we use the FileUpload component
// We need to handle manually these cases because we use the FileUpload component
if (status === 400) {
this.error = response
} else if (status === 401) {
@ -181,7 +181,7 @@ export class VideoAddComponent extends FormReactive implements OnInit {
} else if (status === 403) {
this.error = 'Your video quota is reached, you can\'t upload this video.'
} else {
this.error = 'Unknow error'
this.error = 'Unknown error'
console.error(this.error)
}
}

View File

@ -92,7 +92,7 @@ videosRouter.put('/:id',
videosUpdateValidator,
updateVideoRetryWrapper
)
videosRouter.post('/',
videosRouter.post('/upload',
authenticate,
reqFiles,
videosAddValidator,

View File

@ -96,7 +96,7 @@ describe('Test videos API validator', function () {
it('Should fail with nothing', async function () {
const fields = {}
const attaches = {}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail without name', async function () {
@ -111,7 +111,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with a long name', async function () {
@ -127,7 +127,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail without a category', async function () {
@ -142,7 +142,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with a bad category', async function () {
@ -158,7 +158,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail without a licence', async function () {
@ -173,7 +173,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with a bad licence', async function () {
@ -189,7 +189,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with a bad language', async function () {
@ -205,7 +205,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail without nsfw attribute', async function () {
@ -220,7 +220,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with a bad nsfw attribue', async function () {
@ -236,7 +236,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail without description', async function () {
@ -251,7 +251,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with a long description', async function () {
@ -269,7 +269,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with too many tags', async function () {
@ -285,7 +285,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with a tag length too low', async function () {
@ -301,7 +301,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with a tag length too big', async function () {
@ -317,7 +317,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail without an input file', async function () {
@ -331,7 +331,7 @@ describe('Test videos API validator', function () {
tags: [ 'tag1', 'tag2' ]
}
const attaches = {}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail without an incorrect input file', async function () {
@ -347,7 +347,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_short_fake.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with a too big duration', async function () {
@ -363,7 +363,7 @@ describe('Test videos API validator', function () {
const attaches = {
'videofile': join(__dirname, '..', 'fixtures', 'video_too_long.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
await makePostUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should succeed with the correct parameters', async function () {
@ -382,13 +382,34 @@ describe('Test videos API validator', function () {
'videofile': join(__dirname, '..', 'fixtures', 'video_short.webm')
}
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches, statusCodeExpected: 204 })
await makePostUploadRequest({
url: server.url,
path: path + '/upload',
token: server.accessToken,
fields,
attaches,
statusCodeExpected: 204
})
attaches.videofile = join(__dirname, '..', 'fixtures', 'video_short.mp4')
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches, statusCodeExpected: 204 })
await makePostUploadRequest({
url: server.url,
path: path + '/upload',
token: server.accessToken,
fields,
attaches,
statusCodeExpected: 204
})
attaches.videofile = join(__dirname, '..', 'fixtures', 'video_short.ogv')
await makePostUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches, statusCodeExpected: 204 })
await makePostUploadRequest({
url: server.url,
path: path + '/upload',
token: server.accessToken,
fields,
attaches,
statusCodeExpected: 204
})
})
})

View File

@ -26,7 +26,7 @@ describe('Test reset password scripts', function () {
})
it('Should change the user password from CLI', async function () {
this.timeout(20000)
this.timeout(30000)
const env = getEnvCli(server)
await execCLI(`echo coucou | ${env} npm run reset-password -- -u user_1`)

View File

@ -38,7 +38,7 @@ describe('Test update host scripts', function () {
})
it('Should update torrent hosts', async function () {
this.timeout(20000)
this.timeout(30000)
killallServers([ server ])
server = await runServer(1)

View File

@ -163,7 +163,7 @@ async function testVideoImage (url: string, imageName: string, imagePath: string
}
function uploadVideo (url: string, accessToken: string, videoAttributesArg: VideoAttributes, specialStatus = 204) {
const path = '/api/v1/videos'
const path = '/api/v1/videos/upload'
// Default attributes
let attributes = {