X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fextra-utils%2Frequests%2Frequests.ts;h=8c26a3699f99b84dc6e9b6bd862692e3c5ea2573;hb=c1bc8ee4783d6ce3102524e6c2a02b2f0f6aab6d;hp=0e9d67f0b0f00f0474a1354b769f7573109436fa;hpb=9107d791e2eef9a1b24b0499dac8b9dbba8a792f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/extra-utils/requests/requests.ts b/shared/extra-utils/requests/requests.ts index 0e9d67f0b..8c26a3699 100644 --- a/shared/extra-utils/requests/requests.ts +++ b/shared/extra-utils/requests/requests.ts @@ -5,12 +5,13 @@ import { buildAbsoluteFixturePath, root } from '../miscs/miscs' import { isAbsolute, join } from 'path' import { URL } from 'url' import { decode } from 'querystring' +import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' function get4KFileUrl () { return 'https://download.cpy.re/peertube/4k_file.txt' } -function makeRawRequest (url: string, statusCodeExpected?: number, range?: string) { +function makeRawRequest (url: string, statusCodeExpected?: HttpStatusCode, range?: string) { const { host, protocol, pathname } = new URL(url) return makeGetRequest({ url: `${protocol}//${host}`, path: pathname, statusCodeExpected, range }) @@ -21,12 +22,13 @@ function makeGetRequest (options: { path?: string query?: any token?: string - statusCodeExpected?: number + statusCodeExpected?: HttpStatusCode contentType?: string range?: string redirects?: number + accept?: string }) { - if (!options.statusCodeExpected) options.statusCodeExpected = 400 + if (!options.statusCodeExpected) options.statusCodeExpected = HttpStatusCode.BAD_REQUEST_400 if (options.contentType === undefined) options.contentType = 'application/json' const req = request(options.url).get(options.path) @@ -35,6 +37,7 @@ function makeGetRequest (options: { if (options.token) req.set('Authorization', 'Bearer ' + options.token) if (options.query) req.query(options.query) if (options.range) req.set('Range', options.range) + if (options.accept) req.set('Accept', options.accept) if (options.redirects) req.redirects(options.redirects) return req.expect(options.statusCodeExpected) @@ -44,9 +47,9 @@ function makeDeleteRequest (options: { url: string path: string token?: string - statusCodeExpected?: number + statusCodeExpected?: HttpStatusCode }) { - if (!options.statusCodeExpected) options.statusCodeExpected = 400 + if (!options.statusCodeExpected) options.statusCodeExpected = HttpStatusCode.BAD_REQUEST_400 const req = request(options.url) .delete(options.path) @@ -63,10 +66,10 @@ function makeUploadRequest (options: { path: string token?: string fields: { [ fieldName: string ]: any } - attaches: { [ attachName: string ]: any | any[] } - statusCodeExpected?: number + attaches?: { [ attachName: string ]: any | any[] } + statusCodeExpected?: HttpStatusCode }) { - if (!options.statusCodeExpected) options.statusCodeExpected = 400 + if (!options.statusCodeExpected) options.statusCodeExpected = HttpStatusCode.BAD_REQUEST_400 let req: request.Test if (options.method === 'PUT') { @@ -93,7 +96,7 @@ function makeUploadRequest (options: { } }) - Object.keys(options.attaches).forEach(attach => { + Object.keys(options.attaches || {}).forEach(attach => { const value = options.attaches[attach] if (Array.isArray(value)) { req.attach(attach, buildAbsoluteFixturePath(value[0]), value[1]) @@ -110,10 +113,10 @@ function makePostBodyRequest (options: { path: string token?: string fields?: { [ fieldName: string ]: any } - statusCodeExpected?: number + statusCodeExpected?: HttpStatusCode }) { if (!options.fields) options.fields = {} - if (!options.statusCodeExpected) options.statusCodeExpected = 400 + if (!options.statusCodeExpected) options.statusCodeExpected = HttpStatusCode.BAD_REQUEST_400 const req = request(options.url) .post(options.path) @@ -130,9 +133,9 @@ function makePutBodyRequest (options: { path: string token?: string fields: { [ fieldName: string ]: any } - statusCodeExpected?: number + statusCodeExpected?: HttpStatusCode }) { - if (!options.statusCodeExpected) options.statusCodeExpected = 400 + if (!options.statusCodeExpected) options.statusCodeExpected = HttpStatusCode.BAD_REQUEST_400 const req = request(options.url) .put(options.path) @@ -148,14 +151,15 @@ function makeHTMLRequest (url: string, path: string) { return request(url) .get(path) .set('Accept', 'text/html') - .expect(200) + .expect(HttpStatusCode.OK_200) } -function updateAvatarRequest (options: { +function updateImageRequest (options: { url: string path: string accessToken: string fixture: string + fieldname: string }) { let filePath = '' if (isAbsolute(options.fixture)) { @@ -169,8 +173,8 @@ function updateAvatarRequest (options: { path: options.path, token: options.accessToken, fields: {}, - attaches: { avatarfile: filePath }, - statusCodeExpected: 200 + attaches: { [options.fieldname]: filePath }, + statusCodeExpected: HttpStatusCode.OK_200 }) } @@ -178,6 +182,14 @@ function decodeQueryString (path: string) { return decode(path.split('?')[1]) } +function unwrapBody (test: request.Test): Promise { + return test.then(res => res.body) +} + +function unwrapText (test: request.Test): Promise { + return test.then(res => res.text) +} + // --------------------------------------------------------------------------- export { @@ -190,5 +202,7 @@ export { makePutBodyRequest, makeDeleteRequest, makeRawRequest, - updateAvatarRequest + unwrapBody, + unwrapText, + updateImageRequest }