Source: plateform/main/getDataFrom3DSpace.js

import { _httpCallAuthenticated } from "./3dexperience_api";
import { _3DSpace_get_ticket } from "./3dspace_api";
/**
 * @description La fonction `getDataFrom3DSpace` récupère les données d'un espace 3D en utilisant les informations
 * d'identification fournies et les préférences du widget, et appelle le rappel `onDone` avec la
 * réponse ou le rappel `onError` avec toutes les erreurs rencontrées.
 * @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 » et « space ».(ex: credentials.token, credentials.space, credentials.tenant, credentials.ctx)
 * @property space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
 * @property token - Le paramètre token est le jeton CSRF. (headers ex: ENO_CSRF_TOKEN:token)
 *
 * @param widgetPreference - Le paramètre `widgetPreference` est un objet qui contient les préférences
 * du widget. Il peut inclure des propriétés telles que la taille, la couleur, la position du widget ou
 * toute autre personnalisation spécifique au widget.
 * @param onDone - Une fonction de rappel qui sera appelée lorsque la récupération des données sera
 * réussie. Il prend la réponse comme paramètre.
 * @param onError - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
 * erreur lors de l'exécution de la fonction `getDataFrom3DSpace`. Il est utilisé pour gérer et traiter
 * les erreurs qui surviennent.
 */
export function getDataFrom3DSpace(
  credentials,
  widgetPreference,
  onDone,
  onError,
) {
  _3DSpace_get_ticket(
    credentials.space,
    widgetPreference,
    (response) => {
      _httpCallAuthenticated(response, {
        header: { ENO_CSRF_TOKEN: credentials.token },
        onComplete: (response) => {
          if (onDone) onDone(response);
        },
        onFailure: (error) => {
          console.log("error http", error);
          if (onError) onError(error);
        },
      });
    },
    (error) => {
      console.log("error file URL", error);
      if (onError) onError(error);
    },
  );
}