@beam3_dev/api_module 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/wb3Api.js +2000 -0
  2. package/dist/wb3Api.umd.cjs +78 -0
  3. package/package.json +8 -5
  4. package/index.html +0 -13
  5. package/src/index.js +0 -164
  6. package/src/lib/add/index.js +0 -12
  7. package/src/lib/api/index.js +0 -9
  8. package/src/lib/gouv/colors.js +0 -31
  9. package/src/lib/gouv/gouv_api.js +0 -139
  10. package/src/lib/plateform/Compass/index.js +0 -51
  11. package/src/lib/plateform/Swym/3dswym_api.js +0 -141
  12. package/src/lib/plateform/Swym/communaute/index.js +0 -443
  13. package/src/lib/plateform/Swym/idea/index.js +0 -333
  14. package/src/lib/plateform/Swym/media/index.js +0 -0
  15. package/src/lib/plateform/Swym/post/index.js +0 -0
  16. package/src/lib/plateform/Swym/question/index.js +0 -0
  17. package/src/lib/plateform/Swym/user/index.js +0 -87
  18. package/src/lib/plateform/Swym/wiki/index.js +0 -0
  19. package/src/lib/plateform/Tag/index.js +0 -384
  20. package/src/lib/plateform/Usersgroup/index.js +0 -449
  21. package/src/lib/plateform/main/3dcompass_api.js +0 -78
  22. package/src/lib/plateform/main/3dexperience_api.js +0 -143
  23. package/src/lib/plateform/main/3dspace_api.js +0 -1310
  24. package/src/lib/plateform/main/getActiveServices.js +0 -92
  25. package/src/lib/plateform/main/getCSRFToken.js +0 -30
  26. package/src/lib/plateform/main/getCTX.js +0 -46
  27. package/src/lib/plateform/main/getDataFrom3DSpace.js +0 -47
  28. package/src/lib/plateform/main/getDownloadDocument.js +0 -40
  29. package/src/lib/plateform/main/loadDatas.js +0 -189
  30. package/src/lib/plateform/main/pushDataIn3DSpace.js +0 -61
  31. package/src/lib/utils/updateEvent.js +0 -27
  32. package/vite.config.js +0 -23
@@ -1,1310 +0,0 @@
1
- import {
2
- _httpCallAuthenticated,
3
- _getPlatformServices,
4
- } from "./3dexperience_api";
5
- import { UUID } from "../../api/index";
6
-
7
- // Pour la lecture du Blob
8
- const reader = new FileReader();
9
- reader.onload = () => console.log(reader.result);
10
-
11
- /**
12
- * @description La fonction `_3dSpace_get_docInfo` récupère des informations sur un document dans un espace 3D.
13
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
14
- * la demande. Il inclut généralement des propriétés telles qu'ici « token » et « space ».(ex: credentials.space, credentials.tenant, credentials.token...).
15
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
16
- * @param {String} [docid] - Le paramètre `docid` est l'ID du document pour lequel vous souhaitez récupérer des
17
- * informations. C'est un paramètre obligatoire et doit être fourni.
18
- * @param {Function} [onDone] - Le paramètre `onDone` est une fonction de rappel qui sera appelée lorsque les
19
- * informations du document seront récupérées avec succès. Il prend un argument, qui est l'objet
20
- * d'informations du document.
21
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
22
- * erreur lors de l'appel HTTP. Il prend un paramètre, qui est la réponse d'erreur.
23
- * @returns La fonction ne renvoie explicitement rien.
24
- */
25
- export async function _3DSpace_get_docInfo(
26
- credentials,
27
- docid = undefined,
28
- onDone = undefined,
29
- onError = undefined,
30
- ) {
31
- const _3DSpace = credentials.space;
32
- if (docid === undefined) {
33
- console.log("Le paramètre docid est obligatoire");
34
- return;
35
- }
36
- const url = _3DSpace + `/resources/v1/modeler/documents/${docid}`;
37
- _httpCallAuthenticated(url, {
38
- onComplete(response, headers, xhr) {
39
- const info = JSON.parse(response);
40
- if (onDone) onDone(info);
41
- },
42
-
43
- onFailure(response) {
44
- if (onError) onError(response);
45
- },
46
- });
47
- }
48
-
49
- /**
50
- * @description Cette fonction effectue un appel HTTP authentifié pour récupérer le jeton CSRF pour un document de
51
- * modélisation 3D.
52
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
53
- * la demande. Il inclut généralement des propriétés telles qu'ici « token » et « space ».(ex: credentials.space, credentials.tenant, credentials.token...).
54
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
55
- * @param {String} [docid] - ID du document pour lequel le jeton CSRF est demandé.
56
- * @param {Function} [onDone] - Le paramètre onDone est une fonction de rappel qui sera exécutée lorsque la
57
- * requête HTTP sera terminée avec succès. Il prend un argument, qui correspond aux données de réponse
58
- * renvoyées par le serveur.
59
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera exécutée si la requête
60
- * HTTP échoue ou rencontre une erreur. Il prend un argument, qui est la réponse d'erreur.
61
- */
62
- export function _3DSpace_get_csrf( // get INFO
63
- credentials,
64
- docid,
65
- onDone = undefined,
66
- onError = undefined,
67
- ) {
68
- if (docid !== null) {
69
- let url = `${credentials.space}/resources/v1/modeler/documents/${docid}`;
70
-
71
- _httpCallAuthenticated(url, {
72
- onComplete(response, headers, xhr) {
73
- const info = JSON.parse(response);
74
- if (onDone) onDone(info);
75
- },
76
-
77
- onFailure(response) {
78
- if (onError) onError(response);
79
- },
80
- });
81
- } else {
82
- _3DSpace_csrf(credentials);
83
- }
84
- }
85
-
86
- /**
87
- * @description Cette fonction JavaScript récupère le TOKEN CSRF d'une application 3DSpace.
88
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
89
- * la demande. Il inclut généralement des propriétés telles qu'ici « token » et « space ».(ex: credentials.space, credentials.tenant, credentials.token...).
90
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
91
- * @param {Callback} [onDone] - Le paramètre `onDone` est une fonction de rappel qui sera appelée lorsque le jeton
92
- * CSRF sera récupéré avec succès. Il faut un argument, qui est la valeur du jeton CSRF.
93
- * @param {Callback} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée si une erreur
94
- * survient lors de l'exécution de la fonction `_3DSpace_csrf`. Il est utilisé pour gérer et afficher
95
- * les messages d’erreur ou exécuter toute logique de gestion des erreurs nécessaire.
96
- * @returns la valeur du jeton CSRF, qui est obtenue à partir de la réponse de l'appel HTTP.
97
- */
98
- export function _3DSpace_csrf(
99
- credentials,
100
- onDone = undefined,
101
- onError = undefined,
102
- ) {
103
- const _3DSpace = credentials.space;
104
-
105
- if (_3DSpace !== "" && !_3DSpace) {
106
- const url = _3DSpace + "/resources/v1/application/CSRF";
107
- _httpCallAuthenticated(url, {
108
- onComplete(response, headers, xhr) {
109
- const info = JSON.parse(response);
110
-
111
- if (onDone) onDone(info.csrf.value);
112
- },
113
- onFailure(response) {
114
- if (onError) onError(response);
115
- },
116
- });
117
- } else {
118
- if (onError) onError("ERROR : url du 3DSpace non défini.");
119
- }
120
- }
121
-
122
- /**
123
- * @description Cette fonction génère une URL pour télécharger un fichier à partir d'une plateforme de modélisation
124
- * 3D, en utilisant l'authentification et la gestion des erreurs.
125
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
126
- * la demande. Il inclut généralement des propriétés telles qu'ici « token » et « space ».(ex: credentials.space, credentials.tenant, credentials.token...).
127
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
128
- * @param {String} docid - ID du document pour lequel l'URL du fichier est demandée.
129
- * @param {Function} [onDone] - Une fonction de rappel qui sera appelée lorsque l'URL du fichier sera récupérée
130
- * avec succès. Il prend un paramètre, qui est l'URL du fichier.
131
- * @param {Function} [onError] - Le paramètre onError est une fonction qui sera appelée s'il y a une erreur lors
132
- * de l'exécution de la fonction. Il s'agit d'un paramètre facultatif et peut être laissé indéfini s'il
133
- * n'est pas nécessaire.
134
- */
135
- export function _3DSpace_file_url(
136
- credentials,
137
- docid,
138
- onDone = undefined,
139
- onError = undefined,
140
- ) {
141
- let url =
142
- credentials.space +
143
- `/resources/v1/modeler/documents/${docid}/files/DownloadTicket`;
144
- _3DSpace_get_csrf(
145
- credentials,
146
- docid,
147
- (info) => {
148
- _httpCallAuthenticated(url, {
149
- method: "PUT",
150
- headers: {
151
- ENO_CSRF_TOKEN: info.csrf.value,
152
- },
153
-
154
- onComplete(response) {
155
- let info = JSON.parse(response);
156
-
157
- if (info.success === true) {
158
- try {
159
- const file_url = info.data[0].dataelements.ticketURL;
160
- if (onDone) onDone(file_url);
161
- } catch (err) {
162
- if (onError) onError(err);
163
- }
164
- }
165
- },
166
-
167
- onFailure(response, head) {
168
- console.log("☠️ error => ", response, head);
169
- if (onError) onError(response, head);
170
- },
171
- });
172
- },
173
- onError,
174
- );
175
- }
176
-
177
- /**
178
- * @description Cette fonction envoie une requête PUT à une URL spécifiée avec des en-têtes d'authentification et
179
- * renvoie une URL de fichier en cas de succès.
180
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
181
- * la demande. Il inclut généralement des propriétés telles qu'ici « token » et « space ».(ex: credentials.space, credentials.tenant, credentials.token...).
182
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
183
- * @param {String} [docid] - L'ID du document pour lequel le ticket de téléchargement de fichier est demandé.
184
- * @param {String} [csr] - Le paramètre "csr" est un jeton CSRF utilisé à des fins d'authentification et de
185
- * sécurité. Il est transmis en tant qu'en-tête dans la requête HTTP à l'URL spécifiée.
186
- * @param {Function} [onDone] - Le paramètre onDone est une fonction de rappel qui sera exécutée lorsque la
187
- * requête HTTP aboutira et que l'URL du fichier sera obtenue. Il prend un argument, qui est l'URL du
188
- * fichier.
189
- * @param {Function} [onError] - Le paramètre onError est une fonction de rappel qui sera exécutée s'il y a une
190
- * erreur lors de la requête HTTP. Il est facultatif et peut être laissé indéfini s'il n'est pas
191
- * nécessaire.
192
- */
193
- export function _3DSpace_file_url_csr(
194
- credentials,
195
- docid,
196
- csr,
197
- onDone = undefined,
198
- onError = undefined,
199
- ) {
200
- const url = `${credentials.space}/resources/v1/modeler/documents/${docid}/files/DownloadTicket`;
201
- _httpCallAuthenticated(url, {
202
- method: "PUT",
203
- headers: {
204
- ENO_CSRF_TOKEN: csr,
205
- },
206
-
207
- onComplete(response) {
208
- let info = JSON.parse(response);
209
- if (info.success === true) {
210
- try {
211
- const file_url = info.data[0].dataelements.ticketURL;
212
- if (onDone) onDone(file_url);
213
- } catch (err) {
214
- if (onError) onError(err);
215
- }
216
- }
217
- },
218
-
219
- onFailure(response) {
220
- if (onError) onError(response);
221
- },
222
- });
223
- }
224
-
225
- /**
226
- * @description Cette fonction met à jour un fichier dans un espace 3D avec les données et le nom de fichier donnés,
227
- * en utilisant la protection CSRF.
228
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
229
- * la demande. Il inclut généralement des propriétés telles qu'ici « token » et « space ».(ex: credentials.space, credentials.tenant, credentials.token...).
230
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
231
- * @param {String} [docId] - ID de document du fichier d'espace 3D en cours de mise à jour.
232
- * @param {String} [fileId] - Le paramètre fileid est l'identifiant unique du fichier qui doit être mis à jour.
233
- * @param {String} [data] - Ce paramètre représente les données du fichier qui doivent être mises à jour. Il peut
234
- * se présenter sous la forme d'un format binaire ou texte.
235
- * @param {String} [filename] - Nom du fichier mis à jour.
236
- * @param {Function} [onDone] - Le paramètre onDone est une fonction de rappel qui sera exécutée lorsque
237
- * l'opération de mise à jour du fichier sera terminée avec succès.
238
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera exécutée si une erreur
239
- * survient lors de l'exécution de la fonction `_3dspace_file_update`. Il permet de gérer les erreurs
240
- * de manière personnalisée, plutôt que de s'appuyer sur le comportement de gestion des erreurs par
241
- * défaut.
242
- */
243
- export function _3DSpace_file_update(
244
- credentials,
245
- docId,
246
- fileId,
247
- data,
248
- filename,
249
- onDone = undefined,
250
- onError = undefined,
251
- ) {
252
- _3DSpace_get_csrf(
253
- credentials,
254
- docId,
255
- (info) => {
256
- _3DSpace_file_update_csr(
257
- credentials,
258
- docId,
259
- fileId,
260
- data,
261
- filename,
262
- info.csrf.value,
263
- onDone,
264
- onError,
265
- );
266
- },
267
- onError,
268
- );
269
- }
270
-
271
- /**
272
- * @description Cette fonction met à jour un fichier dans le document du 3DSpace à l'aide d'un
273
- * jeton CheckinTicket et CSRF.
274
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
275
- * la demande. Il inclut généralement des propriétés telles qu'ici « token » et « space ».(ex: credentials.space, credentials.tenant, credentials.token...).
276
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
277
- * @param {String} docId - ID du document en cours de mise à jour.
278
- * @param {String} fileId - ID du fichier mis à jour dans le document.
279
- * @param {String} data - Les données binaires du fichier en cours de mise à jour.
280
- * @param {String} filename - Nom du fichier mis à jour.
281
- * @param {String} csr - csr signifie Cross-Site Request Forgery token, qui est une mesure de sécurité utilisée
282
- * pour empêcher l'accès non autorisé aux applications Web. Il s'agit d'un jeton unique généré par le
283
- * serveur et envoyé au client, qui est ensuite inclus dans les requêtes ultérieures pour vérifier
284
- * l'authenticité de la requête. Dans cette fonction, le
285
- * @param {Function} [onDone] - Le paramètre onDone est une fonction de rappel qui sera exécutée lorsque la
286
- * fonction se terminera avec succès. Il prend la réponse comme argument.
287
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
288
- * erreur lors de la requête HTTP. Il est facultatif et s'il n'est pas fourni, l'erreur sera traitée en
289
- * interne.
290
- */
291
- export function _3DSpace_file_update_csr(
292
- credentials,
293
- docId,
294
- fileId,
295
- data,
296
- filename,
297
- csr,
298
- onDone = undefined,
299
- onError = undefined,
300
- ) {
301
- const url =
302
- credentials.space +
303
- `/resources/v1/modeler/documents/${docId}/files/CheckinTicket`;
304
- _httpCallAuthenticated(url, {
305
- method: "PUT",
306
- headers: {
307
- ENO_CSRF_TOKEN: csr,
308
- },
309
-
310
- onComplete(response, headers, xhr) {
311
- const info = JSON.parse(response).data[0].dataelements;
312
-
313
- const formData = new FormData();
314
-
315
- formData.append("__fcs__jobTicket", info.ticket);
316
- formData.append("file_0", data, filename);
317
-
318
- const opts = {};
319
- opts.method = "POST";
320
- opts.data = formData;
321
-
322
- opts.onComplete = function (response) {
323
- //Update the FCS file receipt
324
- let tempId = "temp_" + Date.now();
325
- let options = {
326
- method: "PUT",
327
- headers: {
328
- ENO_CSRF_TOKEN: csr,
329
- },
330
- data: JSON.stringify({
331
- data: [
332
- {
333
- id: docId,
334
- relateddata: {
335
- files: [
336
- {
337
- id: fileId,
338
- dataelements: {
339
- title: filename,
340
- receipt: response,
341
- },
342
- updateAction: "REVISE",
343
- },
344
- ],
345
- },
346
- tempId,
347
- },
348
- ],
349
- }),
350
-
351
- type: "json",
352
-
353
- onComplete(response) {
354
- if (onDone) onDone(response);
355
- },
356
-
357
- onFailure(response) {
358
- if (onError) onError(response);
359
- },
360
- };
361
-
362
- _httpCallAuthenticated(
363
- credentials.space + "/resources/v1/modeler/documents",
364
- options,
365
- );
366
- };
367
-
368
- opts.onFailure = function (err) {
369
- if (onError) onError(err);
370
- };
371
-
372
- opts.timeout = 0;
373
-
374
- _httpCallAuthenticated(info.ticketURL, opts);
375
- },
376
- });
377
- }
378
-
379
- /**
380
- * @description Cette fonction crée un document dans le 3Dspace à partir des données fournies au format JSON.
381
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
382
- * la demande. Il inclut généralement des propriétés telles qu'ici « token », « space » et « ctx ».(ex: credentials.space, credentials.tenant, credentials.token)
383
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
384
- * @param {String} credentials.token - Le paramètre token est le jeton CSRF. (headers ex: ENO_CSRF_TOKEN:token)
385
- * @param {String} credentials.ctx - L'ID du contexte de travail.
386
- * @param {String}[data] - Le paramètre data correspond aux données JSON qui doivent être chargées dans le 3Dspace.
387
- *
388
- * @param {String}[filename] - Le nom du fichier à créer.
389
- * @param {String}[desc] - desc est un paramètre de chaîne qui représente la description du document en cours de création dans le 3Dspace.
390
- *
391
- * @param {Function}[onDone] - Le paramètre onDone est une fonction de rappel qui sera appelée lorsque la requête HTTP sera terminée avec succès. Il prend la réponse comme argument.
392
- *
393
- * @param {Function}[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 _3dSpace_Create_Doc. Il prend l'objet de réponse comme argument.
394
- *
395
- */
396
- export async function _3DSpace_Create_Doc(
397
- credentials,
398
- data, // data
399
- filename, //ref coclico
400
- desc, // ref name
401
- onDone = undefined,
402
- onError = undefined,
403
- ) {
404
- const _space = credentials.space;
405
- const csr = credentials.token;
406
- const ctx = credentials.ctx;
407
-
408
- const formData = new FormData();
409
- const jsonFile = new Blob([JSON.stringify(data)], {
410
- type: "text/plain",
411
- });
412
-
413
- const urls = {
414
- url_Ticket: `${_space}/resources/v1/modeler/documents/files/CheckinTicket`,
415
- url_Post: `${_space}/resources/v1/modeler/documents/?SecurityContext=ctx::${ctx}`,
416
- };
417
-
418
- if (!_space && _space !== "") {
419
- console.log("le store._3DSpace est vide");
420
- return;
421
- }
422
- // 1
423
- _httpCallAuthenticated(urls.url_Ticket, {
424
- method: "PUT",
425
- headers: {
426
- ENO_CSRF_TOKEN: csr.value,
427
- },
428
-
429
- onComplete(response, headers, xhr) {
430
- const info = JSON.parse(response).data[0].dataelements;
431
-
432
- formData.append("__fcs__jobTicket", info.ticket);
433
- formData.append("filename", jsonFile, filename);
434
-
435
- const opts = {
436
- method: "POST",
437
- data: formData,
438
-
439
- onComplete(ticket) {
440
- if (ctx !== "" && csr !== "") {
441
- const options = {
442
- method: "POST",
443
- headers: {
444
- ENO_CSRF_TOKEN: csr,
445
- Accept: "application/json",
446
- "Content-Type": "application/json",
447
- },
448
- data: JSON.stringify({
449
- data: [
450
- {
451
- type: "Document",
452
- dataelements: {
453
- title: `Title_${filename
454
- .toLowerCase()
455
- .split(" ")
456
- .join("_")}`,
457
- policy: "Document Release",
458
- description: desc,
459
- },
460
- relateddata: {
461
- files: [
462
- {
463
- dataelements: {
464
- title: `${filename}.json`,
465
- receipt: ticket,
466
- },
467
- },
468
- ],
469
- },
470
- tempId: UUID(),
471
- },
472
- ],
473
- }),
474
- type: "json",
475
- timeout: 0,
476
-
477
- onComplete: handleSuccess,
478
- onFailure: handleError,
479
- };
480
-
481
- if (ctx !== "") {
482
- // 3
483
- _httpCallAuthenticated(urls.url_Post, options);
484
- }
485
- } else {
486
- console.warn("le store est vide");
487
- }
488
- },
489
-
490
- onFailure: handleError,
491
- };
492
-
493
- function handleSuccess(response) {
494
- console.log("Success -- response ", response.data[0]);
495
- // Si la fonction callback est définie, on appelle cette fonction qui nous retourne le résultat.
496
- if (onDone) {
497
- onDone(response);
498
- }
499
- }
500
-
501
- function handleError(response, headers) {
502
- console.log("Erreur -- response ", response, "\n headers ", headers);
503
- if (onError) {
504
- onError(response);
505
- }
506
- }
507
-
508
- // 2
509
- // console.log("info.ticketURL", info.ticketURL, "\n", "opts", opts);
510
- _httpCallAuthenticated(info.ticketURL, opts);
511
- },
512
- });
513
- }
514
-
515
- /**
516
- * Cette fonction récupère les contextes de sécurité basés sur des paramètres spécifiés à partir d'un
517
- * hôte donné.
518
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
519
- * la demande. Il inclut généralement des propriétés telles qu'ici « space ».(ex: credentials.space, credentials.tenant, credentials.token...).
520
- * @param {String} [credentials.space] - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
521
- * @param {String} [cs] - Le titre d'un espace de collaboration.
522
- * @param {String} [role] - Le paramètre de rôle est un paramètre facultatif qui spécifie le rôle de
523
- * l'utilisateur dans l'espace de collaboration. Si fourni, la fonction filtrera les espaces de
524
- * collaboration pour trouver celui où l'utilisateur a le rôle spécifié. S'il n'est pas fourni, la
525
- * fonction utilisera le premier espace de collaboration trouvé.
526
- * @param {String} [organization] - Nom de l'organisation pour laquelle le contexte de sécurité est récupéré.
527
- * @param {Function} [onDone] - La fonction à appeler lorsque le contexte de sécurité a été récupéré avec succès.
528
- * Il prend le contexte comme paramètre.
529
- * @param {Function} [onError] - Le paramètre onError est une fonction de rappel qui est appelée si une erreur se
530
- * produit lors de l'exécution de la fonction. Il prend un argument, qui est le message d'erreur ou
531
- * l'objet.
532
- */
533
- export function _3DSpace_get_securityContexts(
534
- credentials,
535
- cs = undefined,
536
- role = undefined,
537
- organization = undefined,
538
- onDone = undefined,
539
- onError = undefined,
540
- ) {
541
- const url =
542
- `${credentials.space}/resources/modeler/pno/person?` +
543
- "current=true" +
544
- "&select=preferredcredentials" +
545
- "&select=collabspaces" +
546
- "&xrequestedwith=xmlhttprequest";
547
-
548
- _httpCallAuthenticated(url, {
549
- method: "GET",
550
- onComplete(response) {
551
- // role.company.cs
552
- const contexts = JSON.parse(response);
553
- let context = "";
554
- let finalCs,
555
- finalOrg,
556
- finalRole = undefined;
557
- if (cs) {
558
- let oCS = contexts.collabspaces.find((e) => e.title === cs);
559
- if (oCS) {
560
- finalCs = cs;
561
- let couples = oCS.couples;
562
- couples = couples.filter(
563
- (value, index, self) =>
564
- index ===
565
- self.findIndex(
566
- (t) =>
567
- t.organization.pid === value.organization.pid &&
568
- t.role.pid === value.role.pid,
569
- ),
570
- );
571
- if (role) {
572
- if (Array.isArray(role)) {
573
- role.forEach((r) => {
574
- if (!finalRole)
575
- couples.forEach((e) => {
576
- if (
577
- r === e.role.name &&
578
- organization === e.organization.title
579
- ) {
580
- finalRole = r;
581
- finalOrg = organization;
582
- } else if (r === e.role.name) {
583
- let defineSingleItem = couples.filter(
584
- (couple) => couple.role.name === r,
585
- );
586
- if (defineSingleItem.length === 1) {
587
- finalRole = defineSingleItem[0].role.name;
588
- finalOrg = defineSingleItem[0].organization.title;
589
- } else {
590
- onError(defineSingleItem);
591
- }
592
- }
593
- });
594
- });
595
- } else {
596
- couples.forEach((e) => {
597
- if (
598
- role === e.role.name &&
599
- organization === e.organization.title
600
- ) {
601
- finalRole = role;
602
- finalOrg = organization;
603
- } else if (role === e.role.name) {
604
- let defineSingleItem = couples.filter(
605
- (couple) => couple.role.name === role,
606
- );
607
- if (defineSingleItem.length === 1) {
608
- finalRole = defineSingleItem[0].role.name;
609
- finalOrg = defineSingleItem[0].organization.title;
610
- } else {
611
- onError(defineSingleItem);
612
- }
613
- }
614
- });
615
- }
616
- }
617
- }
618
- }
619
- if (finalCs && finalOrg && finalRole) {
620
- context = finalRole + "." + finalOrg + "." + finalCs;
621
- onDone(context);
622
- // onDone(encodeURI(context));
623
- } else {
624
- if (contexts.preferredcredentials) {
625
- context =
626
- contexts.preferredcredentials.role.name +
627
- "." +
628
- contexts.preferredcredentials.organization.title +
629
- "." +
630
- contexts.preferredcredentials.collabspace.title;
631
- onDone(context);
632
- } else {
633
- if (onError) {
634
- context = finalRole + "." + finalOrg + "." + finalCs;
635
- onError(context);
636
- }
637
- }
638
- }
639
- },
640
- onFailure(err) {
641
- console.log("Erreur de récupération du contexte de sécurité. => ", err);
642
- },
643
- });
644
- }
645
-
646
- /**
647
- * @description La fonction `_3dspace_download_doc` est une fonction asynchrone qui télécharge un document à partir d'un espace 3D, avec des rappels facultatifs pour le succès et la gestion des erreurs.
648
- * @param {Object} credentials Un objet contenant les informations d'identification nécessaires à
649
- * l'authentification. Il doit avoir les propriétés suivantes: space, token
650
- * @param {String} [credentials.space] - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
651
- * @param {String} [credentials.token] - Le paramètre token est le jeton CSRF. (headers ex: ENO_CSRF_TOKEN:token)
652
- * @param {String} [objectId] - Le paramètre objectId est l'identifiant unique du document que vous souhaitez
653
- * télécharger depuis le 3DSpace.
654
- * @param {Function} [onDone] - Le paramètre `onDone` est une fonction de rappel qui sera appelée lorsque le
655
- * téléchargement sera terminé avec succès. Il prend un argument, qui est les données de réponse du
656
- * téléchargement.
657
- * @param {Callback} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
658
- * erreur lors de l'exécution de la fonction `_3dspace_download_doc`. Il vous permet de gérer et de
659
- * répondre à toutes les erreurs qui se produisent.
660
-
661
- * @returns une promesse.
662
- */
663
- export async function _3DSpace_download_doc(
664
- credentials,
665
- objectId,
666
- onDone = undefined,
667
- onError = undefined,
668
- message = undefined,
669
- ) {
670
- if (objectId === undefined || objectId === "") {
671
- return "Le paramètre objectId est obligatoire";
672
- }
673
-
674
- return new Promise((result) => {
675
- if (credentials.space === "" || !credentials.space) {
676
- _getPlatformServices();
677
- }
678
-
679
- if (objectId !== undefined && objectId !== "" && objectId !== null) {
680
- _3DSpace_file_url(
681
- credentials.space,
682
- objectId,
683
- (response) => {
684
- _httpCallAuthenticated(response, {
685
- headers: {
686
- ENO_CSRF_TOKEN: credentials.token,
687
- },
688
- onComplete(response) {
689
- if (onDone) onDone(JSON.parse(response));
690
-
691
- result = JSON.parse(response);
692
- return result;
693
- },
694
- onFailure(error) {
695
- if (onError) {
696
- console.log("error http", error);
697
- onError(error);
698
- }
699
- },
700
- });
701
- },
702
- (error) => {
703
- if (onError) onError(error);
704
- console.log("*_3dspace_download_doc / error file URL *", error);
705
- },
706
- );
707
- }
708
- });
709
- }
710
-
711
- /**
712
- * @description La fonction `_3dspace_download_multidoc` télécharge plusieurs documents à partir d'un espace 3D en
713
- * utilisant un token et des objectID donnés.
714
- * @param {Object} credentials - Un objet contenant les informations d'identification nécessaires à
715
- * l'authentification dans une fonction interne(_3DSpace_get_downloadTicket_multidoc). Il doit avoir les propriétés suivantes: space, token, tenant
716
- * @param {String} [credentials.space] - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
717
- * @param {String} [credentials.token] - Le paramètre token est le jeton CSRF. (headers ex: ENO_CSRF_TOKEN:token)
718
- * @param {String} [credentials.tenant] - Le tenant (ex: R1132100968447)
719
- * @param {String} [objectIds] - Un tableau d'ID d'objet qui doivent être téléchargés à partir du 3DSpace.
720
- * @param {Function} [onDone] - Le paramètre `onDone` est une fonction de rappel qui sera appelée lorsque le
721
- * processus de téléchargement sera terminé avec succès. Il faut un argument, qui est le résultat du
722
- * processus de téléchargement.
723
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
724
- * erreur pendant le processus de téléchargement. Il vous permet de gérer les erreurs qui surviennent
725
- * lors du téléchargement.
726
-
727
- */
728
- export async function _3DSpace_download_multidoc(
729
- credentials,
730
- objectIds,
731
- onDone = undefined,
732
- onError = undefined,
733
- ) {
734
- let listDiv = [];
735
- const chunkSize = 80;
736
- for (let i = 0; i < objectIds.length; i += chunkSize) {
737
- const chunk = objectIds.slice(i, i + chunkSize);
738
- listDiv.push(chunk);
739
- }
740
- const loop = (i) => {
741
- _3DSpace_get_downloadTicket_multidoc(
742
- credentials,
743
- listDiv[i],
744
- () => {
745
- i++;
746
- if (i < listDiv.length) {
747
- loop(i);
748
- }
749
- },
750
- (done) => {
751
- if (onDone) onDone(done);
752
- },
753
- );
754
- };
755
-
756
- loop(0);
757
- }
758
-
759
- /**
760
- * La fonction `_3dspace_get_downloadTicket_multidoc` permet de récupérer un ticket de téléchargement
761
- * de plusieurs documents dans un espace 3D.
762
- * @param {Object} [credentials] - Un objet contenant les informations d'identification nécessaires à
763
- * l'authentification. Il doit avoir les propriétés suivantes: space, token, tenant
764
- * @param {String} [credentials.space] - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
765
- * @param {String} [credentials.token] - Le paramètre token est le jeton CSRF. (headers ex: ENO_CSRF_TOKEN:token)
766
- * @param {String} [credentials.tenant] - Le tenant (ex: R1132100968447)
767
- * @param {String} [objectIds] - Tableau d'ID d'objet pour lesquels le ticket de téléchargement doit être généré.
768
- * @param {Function} [onNext] - Une fonction de rappel qui sera appelée après chaque demande de ticket de
769
- * téléchargement réussie pour chaque objectId.
770
- * @param {Function} [onDone] - Le paramètre `onDone` est une fonction de rappel qui sera appelée lorsque le
771
- * processus de téléchargement de chaque objet sera terminé avec succès. Il lui sera transmis un objet
772
- * contenant « objectId », « fileName » et « data » du fichier téléchargé.
773
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
774
- * erreur lors de l'exécution de la fonction. Il est facultatif et peut être utilisé pour gérer les
775
- * erreurs qui surviennent.
776
- */
777
- export function _3DSpace_get_downloadTicket_multidoc(
778
- credentials,
779
- objectIds,
780
- onNext = undefined,
781
- onDone = undefined,
782
- onError = undefined,
783
- ) {
784
- const compilData = [];
785
- objectIds.forEach((objectId) => {
786
- compilData.push({
787
- id: objectId,
788
- });
789
- });
790
- let data = JSON.stringify({
791
- csrf: {
792
- name: "ENO_CSRF_TOKEN",
793
- value: credentials.token,
794
- },
795
- data: compilData,
796
- });
797
-
798
- const url = `${credentials.space}/resources/v1/modeler/documents/DownloadTicket?tenant=${credentials.tenant}&e6w-lang=fr&e6w-timezone=-120`;
799
- _httpCallAuthenticated(url, {
800
- method: "PUT",
801
- data,
802
- type: "json",
803
- onComplete(response) {
804
- const datas = response.data;
805
- if (response.success === true) {
806
- if (onNext) onNext();
807
- datas.forEach((data) => {
808
- try {
809
- const fileName = data.dataelements.fileName;
810
- const fileUrl = data.dataelements.ticketURL;
811
- _httpCallAuthenticated(fileUrl, {
812
- onComplete: (response) => {
813
- if (onDone)
814
- onDone({
815
- objectId: data.id,
816
- fileName,
817
- data: JSON.parse(response),
818
- });
819
- },
820
- onFailure: (error) => {
821
- console.log("error http", error);
822
- },
823
- });
824
- } catch (err) {
825
- console.log(err);
826
- if (onError) onError(err);
827
- }
828
- });
829
- }
830
- },
831
- onFailure(response) {
832
- console.log(response);
833
- if (onError) onError(response);
834
- },
835
- });
836
- }
837
-
838
- // MATURITY
839
- /**
840
- * Cette fonction JavaScript récupère les prochains états possibles pour un objet donné dans un espace
841
- * 3D.
842
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
843
- * la demande. Il inclut généralement des propriétés telles que « token », « space » et « ctx ».
844
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
845
- * @param {String} credentials.token - Le paramètre token est le jeton CSRF. (headers ex: ENO_CSRF_TOKEN:token)
846
- * @param {String} credentials.ctx - L'ID du contexte de travail.
847
- * @param {String} objectId - Le paramètre `objectId` est l'identifiant de l'objet dont vous souhaitez récupérer
848
- * les prochains états. Il est utilisé pour spécifier l'objet pour lequel vous souhaitez obtenir les
849
- * états suivants dans l'espace 3D.
850
- * @param {Function} [onDone] - Une fonction de rappel qui sera appelée lorsque la demande sera terminée avec
851
- * succès. Il recevra la réponse en paramètre.
852
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
853
- * erreur lors de l'exécution de la fonction. Il s'agit d'un paramètre facultatif, donc s'il n'est pas
854
- * fourni, il sera par défaut «non défini».
855
- * @return {Promise}
856
- */
857
- export function _3DSpace_lifecycle_getNextStates(
858
- credentials,
859
- objectId,
860
- onDone = undefined,
861
- onError = undefined,
862
- ) {
863
- return new Promise((result) => {
864
- if (credentials.token === "") {
865
- _3DSpace_csrf(credentials);
866
- }
867
- if (objectId !== undefined && objectId !== "" && objectId !== null) {
868
- const url = `${credentials.space}/resources/v1/modeler/dslc/maturity/getNextStates`;
869
-
870
- _3DSpace_get_securityContexts(
871
- credentials.space,
872
- "ESPACE COMMUN",
873
- ["VPLMProjectLeader", "VPLMCreator"],
874
- undefined,
875
- (ctx) => (credentials["ctx"] = ctx),
876
- (err) => {
877
- console.log("onError =>", err);
878
- },
879
- );
880
- let options = {
881
- method: "POST",
882
- headers: {
883
- SecurityContext: "ctx::" + credentials.ctx,
884
- ENO_CSRF_TOKEN: credentials.token,
885
- Accept: "application/json",
886
- "Content-Type": "application/json",
887
- },
888
- data: JSON.stringify({
889
- data: [
890
- {
891
- id: objectId,
892
- },
893
- ],
894
- }),
895
- type: "json",
896
- onComplete(response) {
897
- if (onDone) onDone(response);
898
- },
899
- onFailure(response) {
900
- if (onError) onError(response);
901
- },
902
- };
903
- _httpCallAuthenticated(url, options);
904
- }
905
- });
906
- }
907
- /**
908
- * @description Cette fonction permet de changer l'état d'un objet dans un espace 3D.
909
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
910
- * la demande. Il inclut généralement des propriétés telles que « token », « space » et « ctx ».
911
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace, 3DSwym, 3DCompass...)
912
- * @param {String} credentials.token - Le paramètre token est le jeton CSRF. (headers ex: ENO_CSRF_TOKEN:token)
913
- * @param {String} credentials.ctx - L'ID du contexte de travail.
914
- * @param {String} objectId - Le paramètre objectId est l'identifiant de l'objet dont l'état doit être modifié.
915
- * Il s'agit d'un identifiant unique qui représente un objet spécifique dans le système.
916
- * @param {Function} [nextState] - Le paramètre `nextState` est l'état souhaité vers lequel vous souhaitez modifier
917
- * l'objet. Il représente l'état suivant du cycle de vie de l'objet.
918
- * @param {Function} [onDone] - Une fonction de rappel qui sera appelée lorsque l'opération de changement d'état
919
- * sera terminée avec succès. Il prend la réponse comme argument.
920
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
921
- * erreur lors de l'exécution de la fonction `_3dspace_lifecyle_changeState`. C'est un paramètre
922
- * facultatif, donc s'il n'est pas fourni, la fonction ne fera rien en cas de problème.
923
- * @returns une promesse.
924
- */
925
- export function _3DSpace_lifecycle_changeState(
926
- credentials,
927
- objectId,
928
- nextState,
929
- onDone = undefined,
930
- onError = undefined,
931
- ) {
932
- return new Promise((result) => {
933
- if (credentials.token === "") {
934
- _3DSpace_csrf(credentials);
935
- }
936
- if (objectId !== undefined && objectId !== "" && objectId !== null) {
937
- const url = `${credentials.space}/resources/v1/modeler/dslc/maturity/changeState`;
938
-
939
- _3DSpace_get_securityContexts(
940
- credentials.space,
941
- "ESPACE COMMUN",
942
- ["VPLMProjectLeader", "VPLMCreator"],
943
- undefined,
944
- (ctx) => (credentials["ctx"] = ctx),
945
- (err) => {
946
- console.log("onError =>", err);
947
- },
948
- );
949
- let options = {
950
- method: "POST",
951
- headers: {
952
- SecurityContext: "ctx::" + credentials.ctx,
953
- ENO_CSRF_TOKEN: credentials.token,
954
- Accept: "application/json",
955
- "Content-Type": "application/json",
956
- },
957
- data: JSON.stringify({
958
- data: [
959
- {
960
- id: objectId,
961
- nextState,
962
- },
963
- ],
964
- }),
965
- type: "json",
966
- onComplete(response) {
967
- if (onDone) onDone(response);
968
- },
969
- onFailure(response) {
970
- if (onError) onError(response);
971
- },
972
- };
973
- _httpCallAuthenticated(url, options);
974
- }
975
- });
976
- }
977
- // RESERVATION
978
- //TODO -
979
- function _3DSpace_lifecyle_reserve(
980
- host,
981
- objectId,
982
- onDone = undefined,
983
- onError = undefined,
984
- ) {
985
- // ...
986
- }
987
- //TODO -
988
- function _3DSpace_lifecyle_unreserve(
989
- host,
990
- objectId,
991
- onDone = undefined,
992
- onError = undefined,
993
- ) {
994
- // ...
995
- }
996
- // SHARING
997
- //TODO -
998
- function _3DSpace_lifecyle_getSharing(
999
- host,
1000
- objectId,
1001
- onDone = undefined,
1002
- onError = undefined,
1003
- ) {
1004
- // ...
1005
- }
1006
- //TODO -
1007
- function _3DSpace_lifecyle_setSharing(
1008
- host,
1009
- objectId,
1010
- onDone = undefined,
1011
- onError = undefined,
1012
- ) {
1013
- // ...
1014
- }
1015
- // VERSIONING
1016
- /**
1017
- * @description La fonction `_3DSpace_lifecycle_getGraph` récupère un graphique du cycle de vie d'un objet spatial
1018
- * 3D à l'aide des informations d'identification et de l'ID d'objet fournis.
1019
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier la demande.
1020
- * Il inclut généralement des propriétés telles que « token », « space », « tenant » et « ctx ».(ex: credentials.space, credentials.tenant, credentials.token...).
1021
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace =>(https://r1132100968447-eu1-space.3dexperience.3ds.com/enovia), 3DSwym, 3DCompass...)
1022
- * @param {String} credentials.token - Le paramètre token est le jeton CSRF. (headers ex: ENO_CSRF_TOKEN:token)
1023
- * @param {String} credentials.ctx - L'ID du contexte de travail.
1024
- * @param {String} credentials.tenant - le tenant courant (ex: R1132100968447).
1025
- * @param {String} objectId - Le paramètre objectId est l'identifiant de l'objet pour lequel vous souhaitez
1026
- * récupérer le graphique. Il est utilisé pour spécifier l'objet pour lequel vous souhaitez obtenir le
1027
- * graphique de version.
1028
- * @param {Function} [onDone] - Une fonction de rappel qui sera appelée lorsque la récupération du graphique sera
1029
- * réussie. Il prend la réponse comme argument.
1030
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
1031
- * erreur lors de l'exécution de la fonction `_3DSpace_lifecycle_getGraph`. C'est un paramètre
1032
- * facultatif, donc s'il n'est pas fourni, la fonction ne fera rien en cas d'erreur.
1033
- * @returns une promesse.
1034
- */
1035
- export function _3DSpace_lifecycle_getGraph(
1036
- credentials,
1037
- objectId,
1038
- onDone = undefined,
1039
- onError = undefined,
1040
- ) {
1041
- // A VALIDER
1042
- return new Promise((result) => {
1043
- if (credentials.token === "") {
1044
- _3DSpace_csrf(credentials);
1045
- }
1046
- if (objectId !== undefined && objectId !== "" && objectId !== null) {
1047
- const url = `${credentials.space}/resources/v1/dslc/versiongraph?withThumbnail=0&withIsLastVersion=0&withAttributes=0&withCopyFrom=0&tenant=${credentials.tenant}`;
1048
-
1049
- _3DSpace_get_securityContexts(
1050
- credentials.space,
1051
- "ESPACE COMMUN",
1052
- ["VPLMProjectLeader", "VPLMCreator"],
1053
- undefined,
1054
- (ctx) => (credentials["ctx"] = ctx),
1055
- (err) => {
1056
- console.log("onError =>", err);
1057
- },
1058
- );
1059
- let options = {
1060
- method: "POST",
1061
- headers: {
1062
- securitycontext: "ctx::" + credentials.ctx,
1063
- ENO_CSRF_TOKEN: credentials.token,
1064
- Accept: "application/json",
1065
- "Content-Type": "application/json",
1066
- },
1067
- data: JSON.stringify({
1068
- graphRequests: [
1069
- {
1070
- id: objectId,
1071
- },
1072
- ],
1073
- }),
1074
- type: "json",
1075
- onComplete(response) {
1076
- if (onDone) onDone(response);
1077
- },
1078
- onFailure(response) {
1079
- if (onError) onError(response);
1080
- },
1081
- };
1082
- _httpCallAuthenticated(url, options);
1083
- }
1084
- });
1085
- }
1086
- // REVISION
1087
- /**
1088
- * @description La fonction `_3DSpace_lifecycle_getNextRevision` permet de récupérer la prochaine révision d'un
1089
- * document dans un espace 3D.
1090
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
1091
- * la demande. Il inclut généralement des propriétés telles que « token », « space », « tenant » et « ctx ».
1092
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace =>(https://r1132100968447-eu1-space.3dexperience.3ds.com/enovia), 3DSwym, 3DCompass...)
1093
- * @param {String} credentials.token - Le paramètre token est le jeton CSRF. (headers ex: ENO_CSRF_TOKEN:token)
1094
- * @param {String} credentials.ctx - L'ID du contexte de travail.
1095
- * @param {String} credentials.tenant - le tenant courant (ex: R1132100968447).
1096
- * @param {String} objectId - Le paramètre `objectId` est l'identifiant unique de l'objet pour lequel vous
1097
- * souhaitez obtenir la prochaine révision. Il est utilisé pour spécifier l'objet qui doit être révisé.
1098
- * @param {Function} [onDone] - Une fonction de rappel qui sera appelée lorsque l'opération sera terminée avec
1099
- * succès. Il prend la réponse comme argument.
1100
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
1101
- * erreur lors de l'exécution de la fonction `_3DSpace_lifecycle_getNextRevision`. Il s'agit d'un
1102
- * paramètre facultatif, donc s'il n'est pas fourni, il sera par défaut «non défini».
1103
- * @returns Une promesse est renvoyée.
1104
- */
1105
- export function _3DSpace_lifecycle_getNextRevision(
1106
- credentials,
1107
- objectId,
1108
- onDone = undefined,
1109
- onError = undefined,
1110
- ) {
1111
- return new Promise((result) => {
1112
- if (credentials.token === "") {
1113
- _3DSpace_csrf(credentials);
1114
- }
1115
- if (objectId !== undefined && objectId !== "" && objectId !== null) {
1116
- const url = `${credentials.space}/resources/lifecycle/revise/prepare_revise_maskattributes?tenant=${credentials.tenant}`;
1117
-
1118
- _3DSpace_get_securityContexts(
1119
- credentials.space,
1120
- "ESPACE COMMUN",
1121
- ["VPLMProjectLeader", "VPLMCreator"],
1122
- undefined,
1123
- (ctx) => (credentials["ctx"] = ctx),
1124
- (err) => {
1125
- console.log("onError =>", err);
1126
- },
1127
- );
1128
- let options = {
1129
- method: "POST",
1130
- headers: {
1131
- SecurityContext: "ctx::" + credentials.ctx,
1132
- ENO_CSRF_TOKEN: credentials.token,
1133
- Accept: "application/json",
1134
- "Content-Type": "application/json",
1135
- },
1136
- data: JSON.stringify({
1137
- data: [
1138
- {
1139
- "attribute[PLMReference.V_versionComment]": null,
1140
- physicalid: objectId,
1141
- type: "Document",
1142
- tenant: credentials.tenant,
1143
- objectId,
1144
- policy: "Document Release",
1145
- availableSemantic: ["E", "LAST", "NEW", "DUP"],
1146
- },
1147
- ],
1148
- }),
1149
- type: "json",
1150
- onComplete(response) {
1151
- if (onDone) onDone(response);
1152
- },
1153
- onFailure(response) {
1154
- if (onError) onError(response);
1155
- },
1156
- };
1157
- _httpCallAuthenticated(url, options);
1158
- }
1159
- });
1160
- }
1161
- /**
1162
- * @description La fonction `_3DSpace_lifecycle_changeRevision` est utilisée pour changer la révision d'un objet
1163
- * dans un espace 3D.
1164
- * @param {Object} credentials - Un objet contenant les informations d'identification requises pour authentifier
1165
- * la demande. Il inclut généralement des propriétés telles que « token », « space », « tenant » et « ctx ».
1166
- * @param {String} credentials.space - L'URL du serveur sur lequel l'API est déployée.(ex: 3DSpace =>(https://r1132100968447-eu1-space.3dexperience.3ds.com/enovia), 3DSwym, 3DCompass...)
1167
- * @param {String} credentials.token - Le paramètre token est le jeton CSRF. (headers ex: ENO_CSRF_TOKEN:token)
1168
- * @param {String} credentials.ctx - L'ID du contexte de travail.
1169
- * @param {String} credentials.tenant - le tenant courant (ex: R1132100968447).
1170
- * @param {String} objectId - Le paramètre objectId représente l'identifiant unique de l'objet dans l'espace 3D.
1171
- * Il est utilisé pour spécifier quelle révision de l'objet doit être modifiée.
1172
- * @param {Function} nextRevision - Le paramètre `nextRevision` est le numéro de révision qui sera attribué à
1173
- * l'objet après le changement de révision.
1174
- * @param {Function} [onDone] - Une fonction de rappel qui sera appelée lorsque l'opération sera terminée avec
1175
- * succès. Il prend la réponse comme argument.
1176
- * @param {Function} [onError] - Le paramètre `onError` est une fonction de rappel qui sera appelée s'il y a une
1177
- * erreur lors de l'exécution de la fonction `_3DSpace_lifecycle_changeRevision`. Il vous permet de
1178
- * gérer toutes les erreurs qui se produisent et d’effectuer toute gestion ou journalisation des
1179
- * erreurs nécessaire.
1180
- * @returns une promesse.
1181
- */
1182
- export function _3DSpace_lifecycle_changeRevision(
1183
- credentials,
1184
- objectId,
1185
- nextRevision,
1186
- onDone = undefined,
1187
- onError = undefined,
1188
- ) {
1189
- return new Promise((result) => {
1190
- if (credentials.token === "") {
1191
- _3DSpace_csrf(credentials);
1192
- }
1193
- if (objectId !== undefined && objectId !== "" && objectId !== null) {
1194
- const url = `${credentials.space}/resources/lifecycle/revise/major?tenant=${credentials.tenant}`;
1195
-
1196
- _3DSpace_get_securityContexts(
1197
- credentials.space,
1198
- "ESPACE COMMUN",
1199
- ["VPLMProjectLeader", "VPLMCreator"],
1200
- undefined,
1201
- (ctx) => (credentials["ctx"] = ctx),
1202
- (err) => {
1203
- console.log("onError =>", err);
1204
- },
1205
- );
1206
- let options = {
1207
- method: "POST",
1208
- headers: {
1209
- securitycontext: "ctx::" + credentials.ctx,
1210
- ENO_CSRF_TOKEN: credentials.token,
1211
- Accept: "application/json",
1212
- "Content-Type": "application/json",
1213
- },
1214
- data: JSON.stringify({
1215
- data: [
1216
- {
1217
- physicalid: objectId,
1218
- proposedRevision: nextRevision,
1219
- modifiedAttributes: {
1220
- revision: nextRevision,
1221
- },
1222
- },
1223
- ],
1224
- folderid: null,
1225
- notificationTimeout: 600,
1226
- }),
1227
- type: "json",
1228
- onComplete(response) {
1229
- if (onDone) onDone(response);
1230
- },
1231
- onFailure(response) {
1232
- if (onError) onError(response);
1233
- },
1234
- };
1235
- _httpCallAuthenticated(url, options);
1236
- }
1237
- });
1238
- }
1239
- // SECTION: BOOKMARKS
1240
- // ANCHOR: _3dspace_bookmark_getChildren
1241
- // TODO : A finir , manque la FN _3dspace_get_multiDocInfo()
1242
- // function _3DSpace_bookmark_getChildren(
1243
- // credentials,
1244
- // objIdBookmark,
1245
- // onDone = undefined,
1246
- // onError = undefined,
1247
- // ) {
1248
- // return new Promise((resolve, reject) => {
1249
- // // const store = mainStore();
1250
-
1251
- // const url = `${credentials.space}/resources/v1/modeler/dsbks/dsbks:Bookmark/${objIdBookmark}?$mask=dsbks:BksMask.Items`;
1252
- // _httpCallAuthenticated(url, {
1253
- // headers: {
1254
- // SecurityContext: `ctx::${credentials.ctx}`,
1255
- // },
1256
- // onComplete: (response) => {
1257
- // let tryParse;
1258
- // try {
1259
- // tryParse = JSON.parse(response);
1260
- // } catch (error) {
1261
- // tryParse = response;
1262
- // }
1263
- // if (typeof tryParse === "object") {
1264
- // let items = tryParse?.member[0]?.items?.member;
1265
- // if (items) {
1266
- // const listObjIds = items.map((e) => {
1267
- // if (e?.referencedObject?.identifier) {
1268
- // return e.referencedObject.identifier;
1269
- // }
1270
- // });
1271
- // if (listObjIds.length) {
1272
- // _3DSpace_get_multiDocInfo(host, listObjIds, (res) => {
1273
- // console.log("_3dspace_get_multiDocInfo Response : ", {
1274
- // ...res,
1275
- // });
1276
- // if (res?.data.length) {
1277
- // const listResponses = res.data;
1278
- // listResponses.forEach((r) => {
1279
- // let currentObject = items.find(
1280
- // (o) => o.referencedObject.identifier === r.identifier,
1281
- // );
1282
- // if (currentObject) {
1283
- // currentObject.referencedObject["dataelements"] =
1284
- // r.dataelements;
1285
- // }
1286
- // });
1287
- // }
1288
- // });
1289
- // }
1290
- // }
1291
- // }
1292
-
1293
- // if (onDone) onDone(tryParse);
1294
- // resolve = tryParse;
1295
- // return resolve;
1296
- // },
1297
- // onFailure(response) {
1298
- // if (onError) onError(response);
1299
- // reject = response;
1300
- // return reject;
1301
- // },
1302
- // });
1303
- // });
1304
- // }
1305
- //!SECTION
1306
-
1307
- // module.exports = {
1308
-
1309
- // _3DSpace_bookmark_getChildren,
1310
- // };