jiti-meet/react/features/invite/functions.js

47 lines
1.6 KiB
JavaScript

declare var $: Function;
/**
* Sends an ajax request to a directory service.
*
* @param {string} serviceUrl - The service to query.
* @param {string} jwt - The jwt token to pass to the search service.
* @param {string} text - Text to search.
* @returns {Promise} - The promise created by the request.
*/
export function searchPeople(serviceUrl, jwt, text) {
const queryTypes = '["conferenceRooms","user","room"]';
return new Promise((resolve, reject) => {
$.getJSON(`${serviceUrl}?query=${encodeURIComponent(text)}`
+ `&queryTypes=${queryTypes}&jwt=${jwt}`,
response => resolve(response)
).fail((jqxhr, textStatus, error) =>
reject(error)
);
});
}
/**
* Sends a post request to an invite service.
*
* @param {string} inviteServiceUrl - The invite service that generates the
* invitation.
* @param {string} inviteUrl - The url to the conference.
* @param {string} jwt - The jwt token to pass to the search service.
* @param {Immutable.List} inviteItems - The list of items to invite.
* @returns {Promise} - The promise created by the request.
*/
export function invitePeople(inviteServiceUrl, inviteUrl, jwt, inviteItems) { // eslint-disable-line max-params, max-len
return new Promise((resolve, reject) => {
$.post(`${inviteServiceUrl}?token=${jwt}`,
JSON.stringify({
'invited': inviteItems,
'url': inviteUrl }),
response => resolve(response),
'json')
.fail((jqxhr, textStatus, error) =>
reject(error)
);
});
}