Source: plateform/Compass/index.js

import { _httpCallAuthenticated } from "../main/3dexperience_api";
/**
 * @description La fonction `compass_getListAdditionalApps` effectue une requête HTTP GET authentifiée pour
 * récupérer une liste d'applications supplémentaires en fonction des informations d'identification
 * fournies.
 * @param {Object} credentials Un objet contenant les informations d'identification nécessaires à
 * l'authentification. Il doit avoir les propriétés suivantes : space, token
 * @property {String} space - (_3DCompass)L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
 * @property {String} tenant - le tenant courant (ex: R1132100968447)
 * @param onDone - Le paramètre `onDone` est une fonction de rappel qui sera appelée lorsque l'appel
 * d'API réussit et que les données de réponse sont formatées. Il prend deux arguments :
 * `formatedInfos` et `info`. `formatedInfos` est un tableau d'objets contenant le nom et l'identifiant
 * de chaque application,
 * @param 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 prend un paramètre, « info », qui est un objet contenant des
 * informations sur l'erreur.
 */

export function compass_getListAdditionalApps(credentials, onDone, onError) {
  const URL = {
    base: `${credentials.space}`,
    uri: "/resources/AppsMngt/api/custom/applications",
    option: `?filter=${credentials.tenant}`, // facultatif
  };
  const url = `${URL.base}${URL.uri}${URL.option}`;

  _httpCallAuthenticated(url, {
    method: "GET",
    headers: {
      "Content-Type": "application/json",
      Accept: "application/json",
    },
    onComplete(response, headers, xhr) {
      const info = JSON.parse(response);
      const formatedInfos = info.data.map((app) => {
        const name = app.attributes.name;
        const id = app.id;
        return { name, id };
      });

      if (onDone) onDone(formatedInfos, info);
    },
    onFailure(response, headers) {
      const info = response;
      info["msg"] = headers.errormsg;
      info["errCode"] = headers.errorcode;

      if (onError) onError(info);
    },
  });
}