Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
jitsi-meet/react/features/feedback/functions.web.ts

70 lines
1.8 KiB

import { IReduxState } from '../app/types';
import { isVpaasMeeting } from '../jaas/functions';
import logger from './logger';
/**
* Sends feedback metadata to JaaS endpoints.
*
* @param {string|undefined} url - The JaaS metadata endpoint URL.
* @param {Object} feedbackData - The feedback data object.
* @returns {Promise}
*/
export async function sendFeedbackToJaaSRequest(url: string | undefined, feedbackData: {
jwt?: string; meetingFqn: string; message?: string; score?: number;
sessionId: string; tenant?: string; userId?: string;
}) {
if (!url) {
throw new TypeError('Trying to send jaas feedback request to an undefined URL!');
}
const {
jwt,
sessionId,
meetingFqn,
score,
message,
userId,
tenant
} = feedbackData;
const headers = {
'Authorization': `Bearer ${jwt}`,
'Content-Type': 'application/json'
};
const data = {
sessionId,
meetingFqn,
userId,
tenant,
submitted: new Date().getTime(),
rating: score,
comments: message
};
try {
const res = await fetch(url, {
method: 'POST',
headers,
body: JSON.stringify(data)
});
if (!res.ok) {
logger.error('Status error:', res.status);
}
} catch (err) {
logger.error('Could not send request', err);
}
}
/**
* Returns whether jaas feedback metadata should be send or not.
*
* @param {IReduxState} state - The redux state.
* @returns {boolean} - True if jaas feedback metadata should be send and false otherwise.
*/
export function shouldSendJaaSFeedbackMetadata(state: IReduxState) {
const { jaasFeedbackMetadataURL } = state['features/base/config'];
return Boolean(isVpaasMeeting(state) && jaasFeedbackMetadataURL);
}