import { _httpCallAuthenticated } from "./3dexperience_api";
/**
* @description La fonction `getCSRFToken` est une fonction asynchrone qui récupère un jeton CSRF à partir d'une URL
* spécifiée et appelle le rappel `onDone` avec le jeton en cas de succès, ou le rappel `onError` avec
* une erreur en cas d'échec.
* @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
* la demande. Il inclut généralement des propriétés telles que « token », « space » et « ctx ».
* @param {String} credentials.space - (3DSpace) L'URL du serveur sur lequel l'API est déployée.(3DSpace, 3DSwym, 3DCompass,...etc)
* @example pour le 3DSpace {space:"https://r1132100968447-eu1-space.3dexperience.3ds.com/enovia"}
*
* @param {Function} onDone - Le paramètre `onDone` est une fonction de rappel qui sera appelée lorsque le jeton
* CSRF sera récupéré avec succès. Il faut un argument, qui est la valeur du jeton CSRF.
* @param {Function} onError - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une erreur lors de la requête HTTP. Il est facultatif et peut être utilisé pour gérer les erreurs qui se produisent lors de la demande.
*
*/
export async function getCSRFToken(credentials, onDone, onError) {
if (credentials.space) {
const url = `${credentials.space}/resources/v1/application/CSRF`;
_httpCallAuthenticated(url, {
onComplete(response) {
response = JSON.parse(response);
// console.log("getCSRFToken() / response => ", response);
if (onDone) onDone(response.csrf);
},
onFailure(error, headers, xhr) {
const infos = { error, headers, xhr };
if (onError) onError(infos);
},
});
}
}