Source: api/recording.js

import {Config} from "../config.js";
import {getUserToken} from "./auth.js";
import {http} from "../utils/http/index.js"

/**
 * @module Recording
 *  This is an experimental API.
 * 
 */


/**
 *
 * @async
 * @param {object} options
 * @param {string} options.meetingToken
 * @param {number} [options.interval=60]
 * @param {number} [options.sensivityLevel]
 * @returns {data} - recording details
 */
export async function startRecording(
	options = {meetingToken, interval, sensivityLevel, alternativeEmail}
) {
	let meetingToken = options.meetingToken
	let interval = options?.interval || 0
	let sensivityLevel = options?.sensivityLevel || 0
	let altEmail = options?.alternativeEmail || ""

	let headers = {
		"Content-Type": "application/json",
		Accept: "application/json",
		"x-jibb-user-jwt": await getUserToken(),
		"x-jibb-meeting-jwt": meetingToken,
	}
	let body = {
		write_interval: interval,
		level: sensivityLevel,
		alternative_email: altEmail,
	}
	let response = await http.post(`${Config.apiBaseURL}/v1/meetings/recordings/start`, body, headers)
	return response.data
}

/**
 *
 * @async
 * @returns - http result
 */
export async function stopRecording() {
	let headers = {
		"Content-Type": "application/json",
		Accept: "application/json",
		"x-jibb-user-jwt": await getUserToken(),
	}
	let body = {}
	let response = await http.post(`${Config.apiBaseURL}/v1/meetings/recordings/stop`, body, headers)
	return response.data
}

/**
 *
 * @async
 * @returns {data}
 */

export async function takeSnapshot() {
	let headers = {
		"Content-Type": "application/json",
		Accept: "application/json",
		"x-jibb-user-jwt": await getUserToken(),
	}
	let body = {}
	let response = await http.post(`${Config.apiBaseURL}/v1/meetings/recordings/snapshot`, body, headers)
	return response.data
}