mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
import { makeDeleteRequest, makeGetRequest, makeUploadRequest } from '../requests/requests'
 | 
						|
import * as request from 'supertest'
 | 
						|
import * as chai from 'chai'
 | 
						|
import { buildAbsoluteFixturePath } from '../miscs/miscs'
 | 
						|
 | 
						|
const expect = chai.expect
 | 
						|
 | 
						|
function createVideoCaption (args: {
 | 
						|
  url: string
 | 
						|
  accessToken: string
 | 
						|
  videoId: string | number
 | 
						|
  language: string
 | 
						|
  fixture: string
 | 
						|
  mimeType?: string
 | 
						|
  statusCodeExpected?: number
 | 
						|
}) {
 | 
						|
  const path = '/api/v1/videos/' + args.videoId + '/captions/' + args.language
 | 
						|
 | 
						|
  const captionfile = buildAbsoluteFixturePath(args.fixture)
 | 
						|
  const captionfileAttach = args.mimeType ? [ captionfile, { contentType: args.mimeType } ] : captionfile
 | 
						|
 | 
						|
  return makeUploadRequest({
 | 
						|
    method: 'PUT',
 | 
						|
    url: args.url,
 | 
						|
    path,
 | 
						|
    token: args.accessToken,
 | 
						|
    fields: {},
 | 
						|
    attaches: {
 | 
						|
      captionfile: captionfileAttach
 | 
						|
    },
 | 
						|
    statusCodeExpected: args.statusCodeExpected || 204
 | 
						|
  })
 | 
						|
}
 | 
						|
 | 
						|
function listVideoCaptions (url: string, videoId: string | number) {
 | 
						|
  const path = '/api/v1/videos/' + videoId + '/captions'
 | 
						|
 | 
						|
  return makeGetRequest({
 | 
						|
    url,
 | 
						|
    path,
 | 
						|
    statusCodeExpected: 200
 | 
						|
  })
 | 
						|
}
 | 
						|
 | 
						|
function deleteVideoCaption (url: string, token: string, videoId: string | number, language: string) {
 | 
						|
  const path = '/api/v1/videos/' + videoId + '/captions/' + language
 | 
						|
 | 
						|
  return makeDeleteRequest({
 | 
						|
    url,
 | 
						|
    token,
 | 
						|
    path,
 | 
						|
    statusCodeExpected: 204
 | 
						|
  })
 | 
						|
}
 | 
						|
 | 
						|
async function testCaptionFile (url: string, captionPath: string, containsString: string) {
 | 
						|
  const res = await request(url)
 | 
						|
    .get(captionPath)
 | 
						|
    .expect(200)
 | 
						|
 | 
						|
  expect(res.text).to.contain(containsString)
 | 
						|
}
 | 
						|
 | 
						|
// ---------------------------------------------------------------------------
 | 
						|
 | 
						|
export {
 | 
						|
  createVideoCaption,
 | 
						|
  listVideoCaptions,
 | 
						|
  testCaptionFile,
 | 
						|
  deleteVideoCaption
 | 
						|
}
 |