@communecter/cocolight-api-client 1.0.8 → 1.0.9

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.
@@ -0,0 +1,1534 @@
1
+ // Fichier généré automatiquement
2
+ // eslint-disable-next-line no-unused-vars
3
+ import { ApiAuthenticationError, ApiResponseError } from "../error.js";
4
+
5
+ class EndpointApi {
6
+ /**
7
+ * @param {Object} apiClient - Instance du client API.
8
+ */
9
+ constructor(apiClient) {
10
+ this.apiClient = apiClient;
11
+ }
12
+
13
+ get isConnected() {
14
+ return this.apiClient.isConnected;
15
+ }
16
+
17
+ get userId() {
18
+ return this.apiClient.userId;
19
+ }
20
+
21
+ /**
22
+ * Appelle l'endpoint identifié par la constante et vérifie la réponse.
23
+ *
24
+ * @param {string} constant - La constante identifiant l'endpoint.
25
+ * @param {Object} data - Les données à envoyer.
26
+ * @returns {Promise<Object>} - Les données de réponse.
27
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
28
+ */
29
+ async call(constant, data = {}) {
30
+ return this.apiClient.safeCall(async () => {
31
+ const response = await this.apiClient.callEndpoint(constant, data);
32
+ this.apiClient.checkAndThrowApiResponseError(response);
33
+ return response.data;
34
+ });
35
+ }
36
+
37
+ /**
38
+ * Appelle l'endpoint sans être connecté et vérifie la réponse.
39
+ *
40
+ * @param {string} constant - La constante identifiant l'endpoint.
41
+ * @param {Object} data - Les données à envoyer.
42
+ * @returns {Promise<Object>} - Les données de réponse.
43
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
44
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
45
+ */
46
+ async callNoConnected(constant, data = {}) {
47
+ if (this.isConnected) {
48
+ throw new ApiAuthenticationError("Vous ne devez pas être connecté pour faire cette action.");
49
+ }
50
+ return this.call(constant, data);
51
+ }
52
+
53
+ /**
54
+ * Appelle l'endpoint si l'utilisateur est connecté et vérifie la réponse.
55
+ *
56
+ * @param {string} constant - La constante identifiant l'endpoint.
57
+ * @param {Object} data - Les données à envoyer.
58
+ * @returns {Promise<Object>} - Les données de réponse.
59
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
60
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
61
+ */
62
+ async callIsConnected(constant, data = {}) {
63
+ if (!this.isConnected) {
64
+ throw new ApiAuthenticationError("Vous devez être connecté pour effectuer cette action.");
65
+ }
66
+ return this.call(constant, data);
67
+ }
68
+
69
+ /**
70
+ * Enregistrement d'un utilisateur : Permet d’enregistrer un nouvel utilisateur avec ses informations personnelles.
71
+ * Constant : PERSON_REGISTER
72
+ * @param {Object} data - Les données à envoyer.
73
+ * @param {string} data.name - Nom complet de l'utilisateur
74
+ * @param {string} data.username - Pseudo ou identifiant unique
75
+ * @param {string} data.email - Adresse email de l'utilisateur
76
+ * @param {string} data.pwd - Mot de passe
77
+ * @param {string} data.app - Nom de l'application
78
+ * @param {string} data.pendingUserId - ID d’un utilisateur en attente (facultatif)
79
+ * @param {string} data.mode - Mode d’enregistrement
80
+ * @param {boolean} data.isInvitation - Indique s’il s’agit d’une invitation (facultatif)
81
+ * @returns {Promise<Object>} - Les données de réponse.
82
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
83
+ * @throws {Error} - En cas d'erreur inattendue.
84
+ */
85
+ async personRegister(data = {}) {
86
+ return this.callNoConnected("PERSON_REGISTER", data);
87
+ }
88
+
89
+ /**
90
+ * Authentification : Permet de se connecter en utilisant une adresse email et un mot de passe.
91
+ * Constant : AUTHENTICATE_URL
92
+ * @param {Object} data - Les données à envoyer.
93
+ * @param {string} data.email - Adresse email de l'utilisateur
94
+ * @param {string} data.password - Mot de passe de l'utilisateur
95
+ * @returns {Promise<Object>} - Les données de réponse.
96
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
97
+ * @throws {Error} - En cas d'erreur inattendue.
98
+ */
99
+ async authenticateUrl(data = {}) {
100
+ return this.callNoConnected("AUTHENTICATE_URL", data);
101
+ }
102
+
103
+ /**
104
+ * Rafraîchir un token : Permet de rafraîchir un token d'accès expiré en utilisant un token de rafraîchissement.
105
+ * Constant : REFRESH_TOKEN_URL
106
+ * @param {Object} data - Les données à envoyer.
107
+ * @param {string} data.refreshToken - Token de rafraîchissement
108
+ * @returns {Promise<Object>} - Les données de réponse.
109
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
110
+ * @throws {Error} - En cas d'erreur inattendue.
111
+ */
112
+ async refreshTokenUrl(data = {}) {
113
+ return this.call("REFRESH_TOKEN_URL", data);
114
+ }
115
+
116
+ /**
117
+ * Récupérer les informations utilisateur : Récupère les informations du profil utilisateur pour un token donné.
118
+ * Constant : ME_INFO_URL
119
+ * @returns {Promise<Object>} - Les données de réponse.
120
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
121
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
122
+ * @throws {Error} - En cas d'erreur inattendue.
123
+ */
124
+ async meInfoUrl(data = {}) {
125
+ return this.callIsConnected("ME_INFO_URL", data);
126
+ }
127
+
128
+ /**
129
+ * Récupération de mot de passe : Envoie un email pour récupérer le mot de passe.
130
+ * Constant : PASSWORD_RECOVERY
131
+ * @param {Object} data - Les données à envoyer.
132
+ * @param {string} data.email - Adresse email de l'utilisateur
133
+ * @param {string} data.type - Type d'email envoyé (default: "password")
134
+ * @returns {Promise<Object>} - Les données de réponse.
135
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
136
+ * @throws {Error} - En cas d'erreur inattendue.
137
+ */
138
+ async passwordRecovery(data = {}) {
139
+ return this.callNoConnected("PASSWORD_RECOVERY", data);
140
+ }
141
+
142
+ /**
143
+ * Échange de token avec un autre serveur : Permet de se connecter à un autre serveur Communecter en échangeant un token.
144
+ * Constant : SERVER_EXCHANGE_TOKEN
145
+ * @param {Object} data - Les données à envoyer.
146
+ * @param {string} data.serverUrl - URL du serveur distant
147
+ * @returns {Promise<Object>} - Les données de réponse.
148
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
149
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
150
+ * @throws {Error} - En cas d'erreur inattendue.
151
+ */
152
+ async serverExchangeToken(data = {}) {
153
+ return this.callIsConnected("SERVER_EXCHANGE_TOKEN", data);
154
+ }
155
+
156
+ /**
157
+ * Changer le mot de passe : Permet de changer le mot de passe d'un utilisateur.
158
+ * Constant : CHANGE_PASSWORD
159
+ * @param {Object} data - Les données à envoyer.
160
+ * @param {string} data.mode - Mode ou contexte du changement (default: "changePassword")
161
+ * @param {string} data.userId - Identifiant de l'utilisateur (default: "@userId")
162
+ * @param {string} data.oldPassword - Ancien mot de passe
163
+ * @param {string} data.newPassword - Nouveau mot de passe
164
+ * @param {string} data.newPassword2 - Confirmation du nouveau mot de passe
165
+ * @param {string} data.scope - Périmètre concerné (default: "")
166
+ * @returns {Promise<Object>} - Les données de réponse.
167
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
168
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
169
+ * @throws {Error} - En cas d'erreur inattendue.
170
+ */
171
+ async changePassword(data = {}) {
172
+ return this.callIsConnected("CHANGE_PASSWORD", data);
173
+ }
174
+
175
+ /**
176
+ * Supprimer un compte : Permet de supprimer un compte utilisateur.
177
+ * Constant : DELETE_ACCOUNT
178
+ * @param {Object} data - Les données à envoyer.
179
+ * @param {string} data.reason - Raison de la suppression (default: "")
180
+ * @param {Object} data.pathParams - Les paramètres de chemin.
181
+ * @param {string} data.pathParams.id - Identifiant de l'utilisateur à supprimer (default: "@userId")
182
+ * @returns {Promise<Object>} - Les données de réponse.
183
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
184
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
185
+ * @throws {Error} - En cas d'erreur inattendue.
186
+ */
187
+ async deleteAccount(data = {}) {
188
+ return this.callIsConnected("DELETE_ACCOUNT", data);
189
+ }
190
+
191
+ /**
192
+ * Mettre à jour les paramètres d'un élément : Mise à jour des paramètres spécifiques d'un élément.
193
+ * Constant : UPDATE_SETTINGS
194
+ * @param {Object} data - Les données à envoyer.
195
+ * @param {string} data.type - data.type
196
+ * @param {undefined} data.value - data.value
197
+ * @param {string} data.typeEntity - Type d'élément (citoyens, projects, organizations) (default: "citoyens")
198
+ * @param {string} data.idEntity - Id de l'élément
199
+ * @returns {Promise<Object>} - Les données de réponse.
200
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
201
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
202
+ * @throws {Error} - En cas d'erreur inattendue.
203
+ */
204
+ async updateSettings(data = {}) {
205
+ return this.callIsConnected("UPDATE_SETTINGS", data);
206
+ }
207
+
208
+ /**
209
+ * Mettre à jour la description d'un élément : Permet de mettre à jour la description courte et complète d'un élément.
210
+ * Constant : UPDATE_BLOCK_DESCRIPTION
211
+ * @param {Object} data - Les données à envoyer.
212
+ * @param {string} data.block - Nom du bloc à mettre à jour (doit être 'descriptions') (default: "descriptions")
213
+ * @param {string} data.typeElement - Type d'élément (citoyens, projects, organizations) (default: "citoyens")
214
+ * @param {string} data.id - ID de l'élément concerné
215
+ * @param {string | null} data.scope - Périmètre de mise à jour (default: "")
216
+ * @param {string} data.descMentions - Mentions dans la description (default: "")
217
+ * @param {string} data.shortDescription - Courte description
218
+ * @param {string} data.description - Description complète
219
+ * @returns {Promise<Object>} - Les données de réponse.
220
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
221
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
222
+ * @throws {Error} - En cas d'erreur inattendue.
223
+ */
224
+ async updateBlockDescription(data = {}) {
225
+ return this.callIsConnected("UPDATE_BLOCK_DESCRIPTION", data);
226
+ }
227
+
228
+ /**
229
+ * Mettre à jour les informations d'un élément : Permet de mettre à jour les informations générales d'un élément (nom, contacts, etc.).
230
+ * Constant : UPDATE_BLOCK_INFO
231
+ * @param {Object} data - Les données à envoyer.
232
+ * @param {string} data.block - Nom du bloc à mettre à jour (doit être 'info') (default: "info")
233
+ * @param {string} data.typeElement - Type d'élément (citoyens, projects, organizations) (default: "citoyens")
234
+ * @param {string} data.id - ID de l'élément concerné
235
+ * @param {string} data.scope - Périmètre de mise à jour (default: "")
236
+ * @returns {Promise<Object>} - Les données de réponse.
237
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
238
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
239
+ * @throws {Error} - En cas d'erreur inattendue.
240
+ */
241
+ async updateBlockInfo(data = {}) {
242
+ return this.callIsConnected("UPDATE_BLOCK_INFO", data);
243
+ }
244
+
245
+ /**
246
+ * Mettre à jour les réseaux sociaux d'un élément : Permet de mettre à jour les liens vers les réseaux sociaux d'un élément.
247
+ * Constant : UPDATE_BLOCK_SOCIAL
248
+ * @param {Object} data - Les données à envoyer.
249
+ * @param {string} data.block - Nom du bloc à mettre à jour (doit être 'network') (default: "network")
250
+ * @param {string} data.typeElement - Type d'élément (citoyens, projects, organizations) (default: "citoyens")
251
+ * @param {string} data.id - ID de l'élément concerné
252
+ * @param {string} data.scope - Périmètre de mise à jour (default: "")
253
+ * @param {string} data.gitlab - Compte Gitlab
254
+ * @param {string} data.github - Compte Github
255
+ * @param {string} data.twitter - Compte Twitter
256
+ * @param {string} data.facebook - Compte Facebook
257
+ * @param {string} data.instagram - Compte Instagram
258
+ * @param {string} data.diaspora - Compte Diaspora
259
+ * @param {string} data.mastodon - Compte Mastodon
260
+ * @param {string} data.telegram - Compte Telegram
261
+ * @param {string} data.signal - Compte Signal
262
+ * @returns {Promise<Object>} - Les données de réponse.
263
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
264
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
265
+ * @throws {Error} - En cas d'erreur inattendue.
266
+ */
267
+ async updateBlockSocial(data = {}) {
268
+ return this.callIsConnected("UPDATE_BLOCK_SOCIAL", data);
269
+ }
270
+
271
+ /**
272
+ * Mettre à jour les localités d'un élément : Permet de mettre à jour l'adresse et les informations géographiques d'un élément.
273
+ * Constant : UPDATE_BLOCK_LOCALITY
274
+ * @param {Object} data - Les données à envoyer.
275
+ * @param {string} data.block - Nom du bloc à mettre à jour (doit être 'localities') (default: "localities")
276
+ * @param {string} data.typeElement - Type d'élément (default: "citoyens")
277
+ * @param {string} data.id - ID de l'élément concerné
278
+ * @param {string} data.scope - Périmètre de mise à jour (default: "")
279
+ * @param {object} data.geo - Coordonnées géographiques
280
+ * @param {string} data.geo.@type - data.geo.@type
281
+ * @param {string | number} data.geo.latitude - data.geo.latitude
282
+ * @param {string | number} data.geo.longitude - data.geo.longitude
283
+ * @param {object} data.geoPosition - Position géographique GeoJSON
284
+ * @param {string} data.geoPosition.type - Type GeoJSON (doit être 'Point')
285
+ * @param {Array<number>} data.geoPosition.coordinates - Tableau contenant [longitude, latitude]
286
+ * @param {boolean} data.geoPosition.float - Indicateur pour forcer la conversion en float côté serveur (default: true)
287
+ * @param {object} data.address - data.address
288
+ * @param {string} data.address.@type - data.address.@type
289
+ * @param {string} data.address.addressCountry - data.address.addressCountry
290
+ * @param {string} data.address.codeInsee - data.address.codeInsee
291
+ * @param {string} data.address.addressLocality - data.address.addressLocality
292
+ * @param {string} data.address.localityId - data.address.localityId
293
+ * @param {string} data.address.level1 - data.address.level1
294
+ * @param {string} data.address.level1Name - data.address.level1Name
295
+ * @param {string} data.address.level3 - ID du département. Peut être vide pour les pays étrangers.
296
+ * @param {string} data.address.level3Name - Nom du département. Peut être vide pour les pays étrangers.
297
+ * @param {string} data.address.level4 - ID de la commune. Peut être vide pour les pays étrangers.
298
+ * @param {string} data.address.level4Name - Nom de la commune. Peut être vide pour les pays étrangers.
299
+ * @param {string} data.address.postalCode - data.address.postalCode
300
+ * @param {string} data.address.streetAddress - data.address.streetAddress
301
+ * @returns {Promise<Object>} - Les données de réponse.
302
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
303
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
304
+ * @throws {Error} - En cas d'erreur inattendue.
305
+ */
306
+ async updateBlockLocality(data = {}) {
307
+ return this.callIsConnected("UPDATE_BLOCK_LOCALITY", data);
308
+ }
309
+
310
+ /**
311
+ * Mettre à jour le slug d'un élément : Permet de mettre à jour le slug pour une URL simplifiée.
312
+ * Constant : UPDATE_BLOCK_SLUG
313
+ * @param {Object} data - Les données à envoyer.
314
+ * @param {string} data.block - Nom du bloc à mettre à jour (doit être 'info') (default: "info")
315
+ * @param {string} data.typeElement - Type d'élément (citoyens, projects, organizations) (default: "citoyens")
316
+ * @param {string} data.id - ID de l'élément concerné
317
+ * @param {string} data.scope - data.scope (default: "")
318
+ * @param {string} data.slug - Slug simplifié pour URL
319
+ * @returns {Promise<Object>} - Les données de réponse.
320
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
321
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
322
+ * @throws {Error} - En cas d'erreur inattendue.
323
+ */
324
+ async updateBlockSlug(data = {}) {
325
+ return this.callIsConnected("UPDATE_BLOCK_SLUG", data);
326
+ }
327
+
328
+ /**
329
+ * Vérifier l'état d'une URL : Vérifie si une URL (slug) est valide ou disponible.
330
+ * Constant : CHECK
331
+ * @param {Object} data - Les données à envoyer.
332
+ * @param {string} data.block - Nom du bloc (default: "info")
333
+ * @param {string} data.id - ID de l'élément
334
+ * @param {string} data.type - Type d'élément (default: "citoyens")
335
+ * @param {string} data.slug - Slug à vérifier
336
+ * @returns {Promise<Object>} - Les données de réponse.
337
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
338
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
339
+ * @throws {Error} - En cas d'erreur inattendue.
340
+ */
341
+ async check(data = {}) {
342
+ return this.callIsConnected("CHECK", data);
343
+ }
344
+
345
+ /**
346
+ * Mettre à jour l'image de profil : Permet de mettre à jour l'image de profil d'un utilisateur ou d'une entité.
347
+ * Constant : PROFIL_IMAGE
348
+ * @param {Object} data - Les données à envoyer.
349
+ * @param {undefined} data.profil_avatar - Fichier image de profil au format binaire
350
+ * @param {Object} data.pathParams - Les paramètres de chemin.
351
+ * @param {string} data.pathParams.folder - Type d'entité (default: "citoyens")
352
+ * @param {string} data.pathParams.ownerId - ID de l'utilisateur ou de l'entité
353
+ * @returns {Promise<Object>} - Les données de réponse.
354
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
355
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
356
+ * @throws {Error} - En cas d'erreur inattendue.
357
+ */
358
+ async profilImage(data = {}) {
359
+ return this.callIsConnected("PROFIL_IMAGE", data);
360
+ }
361
+
362
+ /**
363
+ * Obtenir les éléments liés : Récupère les informations détaillées d'un élément et de ses éléments liés.
364
+ * Constant : GET_ELEMENTS_ABOUT
365
+ * @param {Object} data - Les données à envoyer.
366
+ * @param {string} data.tpl - Template utilisé (ex: ficheInfoElement) (default: "ficheInfoElement")
367
+ * @param {Object} data.pathParams - Les paramètres de chemin.
368
+ * @param {string} data.pathParams.type - Type d'entité (default: "citoyens")
369
+ * @param {string} data.pathParams.id - ID de l'utilisateur ou de l'entité
370
+ * @returns {Promise<Object>} - Les données de réponse.
371
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
372
+ * @throws {Error} - En cas d'erreur inattendue.
373
+ */
374
+ async getElementsAbout(data = {}) {
375
+ return this.call("GET_ELEMENTS_ABOUT", data);
376
+ }
377
+
378
+ /**
379
+ * Gérer des connexions multiples : Permet d’inviter ou de connecter plusieurs utilisateurs en même temps à une entité.
380
+ * Constant : MULTICONNECT
381
+ * @param {Object} data - Les données à envoyer.
382
+ * @param {string} data.parentId - ID de l'entité parente
383
+ * @param {string} data.parentType - Type de l'entité parente (default: "citoyens")
384
+ * @param {object} data.listInvite - Liste des citoyens invités
385
+ * @param {Object.<string, object>} data.listInvite - Objet dont les clés keys matching ^(citoyens|projects|organizations)$
386
+ * @returns {Promise<Object>} - Les données de réponse.
387
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
388
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
389
+ * @throws {Error} - En cas d'erreur inattendue.
390
+ */
391
+ async multiconnect(data = {}) {
392
+ return this.callIsConnected("MULTICONNECT", data);
393
+ }
394
+
395
+ /**
396
+ * Récupérer les actualités : Récupère la liste d’actualités selon plusieurs critères.
397
+ * Constant : GET_NEWS
398
+ * @param {Object} data - Les données à envoyer.
399
+ * @param {number} data.dateLimit - Limite de date timestamp ou 0 (default: 0)
400
+ * @param {object} data.search - data.search
401
+ * @param {string} data.search.name - Nom ou terme recherché (default: "")
402
+ * @param {number} data.indexStep - Nombre de résultats par page (default: 12)
403
+ * @param {Object} data.pathParams - Les paramètres de chemin.
404
+ * @param {boolean} data.pathParams.isLive - Indique si l'actualité est en direct (default: true)
405
+ * @param {string} data.pathParams.type - Type d'actualité (ex: 'citoyens', 'projects', 'organizations') (default: "citoyens")
406
+ * @param {string} data.pathParams.id - ID de l'élément (ex: ID d'un utilisateur, d'un projet ou d'une organisation)
407
+ * @returns {Promise<Object>} - Les données de réponse.
408
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
409
+ * @throws {Error} - En cas d'erreur inattendue.
410
+ */
411
+ async getNews(data = {}) {
412
+ return this.call("GET_NEWS", data);
413
+ }
414
+
415
+ /**
416
+ * Récupérer des actualités par IDs : Récupère des actualités à partir d’une liste d’identifiants.
417
+ * Constant : GET_NEWS_BY_ID
418
+ * @param {Object} data - Les données à envoyer.
419
+ * @param {Array<string>} data.ids - Liste des IDs d’actualités à récupérer
420
+ * @returns {Promise<Object>} - Les données de réponse.
421
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
422
+ * @throws {Error} - En cas d'erreur inattendue.
423
+ */
424
+ async getNewsById(data = {}) {
425
+ return this.call("GET_NEWS_BY_ID", data);
426
+ }
427
+
428
+ /**
429
+ * Ajouter une actualité : Ajoute une nouvelle actualité.
430
+ * Constant : ADD_NEWS
431
+ * @param {Object} data - Les données à envoyer.
432
+ * @param {string} data.text - Contenu de l’actualité
433
+ * @param {string} data.scope - Portée de l'actualité (ex: public, privé...) (default: "public")
434
+ * @param {boolean} data.markdownActive - Markdown activé (true/false) (default: true)
435
+ * @param {string} data.parentId - ID de l'entité parente
436
+ * @param {string} data.parentType - Type de l'entité parente (default: "citoyens")
437
+ * @param {string} data.type - Type de l'objet, toujours 'news'. (default: "news")
438
+ * @param {boolean} data.json - Indique que la réponse est au format JSON. (default: true)
439
+ * @param {array | string} data.tags - Tags : "" pour effacer tous les tags, ou tableau de mots-clés.
440
+ * @param {object} data.mediaImg - Optionnel. Informations sur les images associées à la news.
441
+ * @param {number} data.mediaImg.countImages - Nombre d'images.
442
+ * @param {Array<string>} data.mediaImg.images - Liste des identifiants ou chemins d'images.
443
+ * @param {object} data.mediaFile - Optionnel. Informations sur les fichiers associés à la news.
444
+ * @param {number} data.mediaFile.countFiles - Nombre de fichiers.
445
+ * @param {Array<string>} data.mediaFile.files - Liste des identifiants ou chemins de fichiers.
446
+ * @param {object} data.mentions - Liste des mentions sous forme d'objet avec des clés dynamiques représentant l'indice de la mention.
447
+ * @param {Object.<string, object>} data.mentions - Objet dont les clés keys matching ^[0-9]+$
448
+ * @returns {Promise<Object>} - Les données de réponse.
449
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
450
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
451
+ * @throws {Error} - En cas d'erreur inattendue.
452
+ */
453
+ async addNews(data = {}) {
454
+ return this.callIsConnected("ADD_NEWS", data);
455
+ }
456
+
457
+ /**
458
+ * Ajouter une image à une actualité : Ajoute une images à une actualité.
459
+ * Constant : ADD_IMAGE_NEWS
460
+ * @param {Object} data - Les données à envoyer.
461
+ * @param {undefined} data.newsImage - Fichier image à télécharger
462
+ * @param {Object} data.pathParams - Les paramètres de chemin.
463
+ * @param {string} data.pathParams.folder - Type de l'entité parente (ex: 'citoyens', 'projects', 'organizations') (default: "citoyens")
464
+ * @param {string} data.pathParams.ownerId - ID de l'utilisateur ou de l'entité parente
465
+ * @returns {Promise<Object>} - Les données de réponse.
466
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
467
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
468
+ * @throws {Error} - En cas d'erreur inattendue.
469
+ */
470
+ async addImageNews(data = {}) {
471
+ return this.callIsConnected("ADD_IMAGE_NEWS", data);
472
+ }
473
+
474
+ /**
475
+ * Ajouter un fichier à une actualité : Ajoute un fichier à une actualité.
476
+ * Constant : ADD_FILE_NEWS
477
+ * @param {Object} data - Les données à envoyer.
478
+ * @param {undefined} data.newsFile - Fichier image à télécharger
479
+ * @param {Object} data.pathParams - Les paramètres de chemin.
480
+ * @param {string} data.pathParams.folder - Type de l'entité parente (ex: 'citoyens', 'projects', 'organizations') (default: "citoyens")
481
+ * @param {string} data.pathParams.ownerId - ID de l'utilisateur ou de l'entité parente
482
+ * @returns {Promise<Object>} - Les données de réponse.
483
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
484
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
485
+ * @throws {Error} - En cas d'erreur inattendue.
486
+ */
487
+ async addFileNews(data = {}) {
488
+ return this.callIsConnected("ADD_FILE_NEWS", data);
489
+ }
490
+
491
+ /**
492
+ * Supprimer une actualité : Supprime une actualité existante.
493
+ * Constant : DELETE_NEWS
494
+ * @param {Object} data - Les données à envoyer.
495
+ * @param {boolean} data.isLive - data.isLive (default: false)
496
+ * @param {Object} data.pathParams - Les paramètres de chemin.
497
+ * @param {string} data.pathParams.id - ID de l'actualité à supprimer
498
+ * @returns {Promise<Object>} - Les données de réponse.
499
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
500
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
501
+ * @throws {Error} - En cas d'erreur inattendue.
502
+ */
503
+ async deleteNews(data = {}) {
504
+ return this.callIsConnected("DELETE_NEWS", data);
505
+ }
506
+
507
+ /**
508
+ * Mettre à jour une actualité : Met à jour le contenu d’une actualité existante.
509
+ * Constant : UPDATE_NEWS
510
+ * @param {Object} data - Les données à envoyer.
511
+ * @param {string} data.idNews - ID de l'actualité à mettre à jour
512
+ * @param {string} data.text - Contenu de l’actualité
513
+ * @param {string} data.scope - Portée de l'actualité (ex: public, privé...) (default: "public")
514
+ * @param {boolean} data.markdownActive - Markdown activé (true/false) (default: true)
515
+ * @param {string} data.parentId - ID de l'entité parente
516
+ * @param {string} data.parentType - Type de l'entité parente (default: "citoyens")
517
+ * @param {string} data.type - Type de l'objet, toujours 'news'. (default: "news")
518
+ * @param {array | string} data.tags - Tags : "" pour effacer tous les tags, ou tableau de mots-clés.
519
+ * @param {object} data.mediaImg - Optionnel. Informations sur les images associées à la news.
520
+ * @param {number} data.mediaImg.countImages - Nombre d'images.
521
+ * @param {Array<string>} data.mediaImg.images - Liste des identifiants ou chemins d'images.
522
+ * @param {object} data.mediaFile - Optionnel. Informations sur les fichiers associés à la news.
523
+ * @param {number} data.mediaFile.countFiles - Nombre de fichiers.
524
+ * @param {Array<string>} data.mediaFile.files - Liste des identifiants ou chemins de fichiers.
525
+ * @param {object} data.mentions - Liste des mentions sous forme d'objet avec des clés dynamiques représentant l'indice de la mention.
526
+ * @param {Object.<string, object>} data.mentions - Objet dont les clés keys matching ^[0-9]+$
527
+ * @returns {Promise<Object>} - Les données de réponse.
528
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
529
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
530
+ * @throws {Error} - En cas d'erreur inattendue.
531
+ */
532
+ async updateNews(data = {}) {
533
+ return this.callIsConnected("UPDATE_NEWS", data);
534
+ }
535
+
536
+ /**
537
+ * Partager une actualité : Partage une actualité avec une entité ou un utilisateur.
538
+ * Constant : SHARE_NEWS
539
+ * @param {Object} data - Les données à envoyer.
540
+ * @param {string} data.parentId - ID de l'actualité à partager
541
+ * @param {string} data.parentType - Type de l'objet, toujours 'news'. (default: "news")
542
+ * @param {string} data.childId - ID de l'entité partageante
543
+ * @param {string} data.childType - Type de l'entité partageante (default: "citoyens")
544
+ * @param {string} data.connectType - Type de connexion, toujours 'share'. (default: "share")
545
+ * @param {string} data.comment - Commentaire de partage
546
+ * @returns {Promise<Object>} - Les données de réponse.
547
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
548
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
549
+ * @throws {Error} - En cas d'erreur inattendue.
550
+ */
551
+ async shareNews(data = {}) {
552
+ return this.callIsConnected("SHARE_NEWS", data);
553
+ }
554
+
555
+ /**
556
+ * Récupérer les commentaires : Récupère les commentaires d’un élément.
557
+ * Constant : GET_COMMENTS
558
+ * @param {Object} data.pathParams - Les paramètres de chemin.
559
+ * @param {string} data.pathParams.type - Type de l'élément (default: "news")
560
+ * @param {string} data.pathParams.id - ID de l'élément dont on veut récupérer les commentaires
561
+ * @returns {Promise<Object>} - Les données de réponse.
562
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
563
+ * @throws {Error} - En cas d'erreur inattendue.
564
+ */
565
+ async getComments(data = {}) {
566
+ return this.call("GET_COMMENTS", data);
567
+ }
568
+
569
+ /**
570
+ * Ajouter un commentaire : Ajoute un commentaire à une actualité ou autre contexte.
571
+ * Constant : ADD_COMMENTS
572
+ * @param {Object} data - Les données à envoyer.
573
+ * @param {string} data.parentCommentId - ID du commentaire parent (optionnel)
574
+ * @param {string} data.text - Contenu du commentaire
575
+ * @param {string} data.contextId - ID de l'élément auquel le commentaire est associé
576
+ * @param {string} data.contextType - Type de l'élément auquel le commentaire est associé (default: "news")
577
+ * @param {string} data.argval - Valeur de l'argument (optionnel) (default: "")
578
+ * @param {string} data.path - Chemin de l'élément (optionnel) (default: "")
579
+ * @param {Array<object>} data.mentions - data.mentions
580
+ * @returns {Promise<Object>} - Les données de réponse.
581
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
582
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
583
+ * @throws {Error} - En cas d'erreur inattendue.
584
+ */
585
+ async addComments(data = {}) {
586
+ return this.callIsConnected("ADD_COMMENTS", data);
587
+ }
588
+
589
+ /**
590
+ * Supprimer un commentaire : Supprime un commentaire existant.
591
+ * Constant : DELETE_COMMENTS
592
+ * @param {Object} data.pathParams - Les paramètres de chemin.
593
+ * @param {string} data.pathParams.id - ID du commentaire à supprimer
594
+ * @returns {Promise<Object>} - Les données de réponse.
595
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
596
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
597
+ * @throws {Error} - En cas d'erreur inattendue.
598
+ */
599
+ async deleteComments(data = {}) {
600
+ return this.callIsConnected("DELETE_COMMENTS", data);
601
+ }
602
+
603
+ /**
604
+ * Mettre à jour un commentaire : Met à jour le contenu d’un commentaire.
605
+ * Constant : UPDATE_COMMENTS
606
+ * @param {Object} data - Les données à envoyer.
607
+ * @param {string} data.id - ID du commentaire à mettre à jour
608
+ * @param {object} data.params - data.params
609
+ * @param {string} data.params.text - Nouveau texte du commentaire
610
+ * @param {Array<object>} data.params.mentions - data.params.mentions
611
+ * @returns {Promise<Object>} - Les données de réponse.
612
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
613
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
614
+ * @throws {Error} - En cas d'erreur inattendue.
615
+ */
616
+ async updateComments(data = {}) {
617
+ return this.callIsConnected("UPDATE_COMMENTS", data);
618
+ }
619
+
620
+ /**
621
+ * Rechercher des tags : Recherche des tags correspondant à un mot-clé.
622
+ * Constant : SEARCH_TAGS
623
+ * @param {Object} data.pathParams - Les paramètres de chemin.
624
+ * @param {string} data.pathParams.q - Mot-clé de recherche
625
+ * @returns {Promise<Object>} - Les données de réponse.
626
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
627
+ * @throws {Error} - En cas d'erreur inattendue.
628
+ */
629
+ async searchTags(data = {}) {
630
+ return this.call("SEARCH_TAGS", data);
631
+ }
632
+
633
+ /**
634
+ * Afficher les votes d'une actualité : Récupère la liste des votes (like, love, etc.) sur une actualité.
635
+ * Constant : SHOW_VOTE
636
+ * @param {Object} data.pathParams - Les paramètres de chemin.
637
+ * @param {string} data.pathParams.type - Type de l'élément (default: "news")
638
+ * @param {string} data.pathParams.id - ID de l'élément dont on veut récupérer les votes
639
+ * @returns {Promise<Object>} - Les données de réponse.
640
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
641
+ * @throws {Error} - En cas d'erreur inattendue.
642
+ */
643
+ async showVote(data = {}) {
644
+ return this.call("SHOW_VOTE", data);
645
+ }
646
+
647
+ /**
648
+ * Recherche globale avec autocomplétion : Effectue une recherche globale avec possibilité d’autocomplétion.
649
+ * Constant : GLOBAL_AUTOCOMPLETE
650
+ * @param {Object} data - Les données à envoyer.
651
+ * @param {string} data.name - Nom ou mot-clé de la recherche
652
+ * @param {object} data.locality - Liste des localités ciblées avec leur identifiant et leur type (city ou level1)
653
+ * @param {Object.<string, object>} data.locality - Objet dont les clés keys matching ^[^\s]+$
654
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche
655
+ * @param {Array<string>} data.searchTags - Balises (tags) à utiliser pour filtrer la recherche
656
+ * @param {object} data.ranges - Configuration des plages de résultats pour chaque type de recherche
657
+ * @param {Object.<string, object>} data.ranges - Objet dont les clés keys matching ^[^\s]+$
658
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects","citoyens","poi"])
659
+ * @param {number} data.indexMin - Index de départ global pour la pagination (toujours 0) (default: 0)
660
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination)
661
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
662
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
663
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
664
+ * @param {string} data.filters - Filtres additionnels appliqués à la recherche (actuellement vide) (default: "")
665
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
666
+ * @returns {Promise<Object>} - Les données de réponse.
667
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
668
+ * @throws {Error} - En cas d'erreur inattendue.
669
+ */
670
+ async globalAutocomplete(data = {}) {
671
+ return this.call("GLOBAL_AUTOCOMPLETE", data);
672
+ }
673
+
674
+ /**
675
+ * Recherche de villes avec autocomplétion : Recherche des villes en fonction d’un nom, autocomplétion rapide.
676
+ * Constant : CITY_AUTOCOMPLETE
677
+ * @param {Object} data - Les données à envoyer.
678
+ * @param {string} data.name - Nom de la ville
679
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
680
+ * @param {Array<string>} data.searchType - data.searchType (default: ["cities"])
681
+ * @param {string} data.searchBy - Mode de recherche (ex: ALL) (default: "ALL")
682
+ * @param {number} data.indexMin - Index minimum
683
+ * @param {number} data.indexMax - Index maximum
684
+ * @returns {Promise<Object>} - Les données de réponse.
685
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
686
+ * @throws {Error} - En cas d'erreur inattendue.
687
+ */
688
+ async cityAutocomplete(data = {}) {
689
+ return this.call("CITY_AUTOCOMPLETE", data);
690
+ }
691
+
692
+ /**
693
+ * Suggestions d'entrée : Fournit des suggestions basées sur le nom recherché, etc.
694
+ * Constant : SUGGESTION_INPUT
695
+ * @param {Object} data - Les données à envoyer.
696
+ * @param {string} data.name - Nom ou terme recherché
697
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche
698
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
699
+ * @param {number} data.indexMax - Index maximum pour la pagination (default: 20)
700
+ * @returns {Promise<Object>} - Les données de réponse.
701
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
702
+ * @throws {Error} - En cas d'erreur inattendue.
703
+ */
704
+ async suggestionInput(data = {}) {
705
+ return this.call("SUGGESTION_INPUT", data);
706
+ }
707
+
708
+ /**
709
+ * Récupérer les projets non administrables : Récupère les projets accessibles sans droits d'administration.
710
+ * Constant : GET_PROJECTS_NO_ADMIN
711
+ * @param {Object} data - Les données à envoyer.
712
+ * @param {string} data.name - Nom ou terme recherché
713
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["projects"])
714
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
715
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
716
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
717
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["projects"])
718
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
719
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
720
+ * @param {object} data.filters - data.filters (default: {"$or":{"links.contributors.@userId":{"$exists":true},"parent.@userId":{"$exists":true}},"links.contributors.@userId":{"$exists":true}})
721
+ * @param {object} data.filters.$or - data.filters.$or
722
+ * @param {Object.<string, object>} data.filters.$or - Objet dont les clés keys matching ^links\.contributors\.(?:[a-f0-9]{24}|@\w+)$ and keys matching ^parent\.(?:[a-f0-9]{24}|@\w+)$
723
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.contributors\.(?:[a-f0-9]{24}|@\w+)$
724
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
725
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
726
+ * @returns {Promise<Object>} - Les données de réponse.
727
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
728
+ * @throws {Error} - En cas d'erreur inattendue.
729
+ */
730
+ async getProjectsNoAdmin(data = {}) {
731
+ return this.call("GET_PROJECTS_NO_ADMIN", data);
732
+ }
733
+
734
+ /**
735
+ * Récupérer les projets administrables : Récupère les projets pour lesquels l'utilisateur a des droits d'administration.
736
+ * Constant : GET_PROJECTS_ADMIN
737
+ * @param {Object} data - Les données à envoyer.
738
+ * @param {string} data.name - Nom ou terme recherché
739
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["projects"])
740
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
741
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
742
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
743
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["projects"])
744
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
745
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
746
+ * @param {object} data.filters - data.filters (default: {"$or":{"links.contributors.@{pathParams.id}":{"$exists":true},"parent.@{pathParams.id}":{"$exists":true}},"links.contributors.@{pathParams.id}":{"$exists":true}})
747
+ * @param {object} data.filters.$or - data.filters.$or
748
+ * @param {Object.<string, object>} data.filters.$or - Objet dont les clés keys matching ^links\.contributors\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$ and keys matching ^parent\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$
749
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.contributors\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$
750
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
751
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
752
+ * @param {Object} data.pathParams - Les paramètres de chemin.
753
+ * @param {string} data.pathParams.type - Type d'entité (default: "citoyens")
754
+ * @param {string} data.pathParams.id - ID de l'utilisateur ou de l'entité
755
+ * @returns {Promise<Object>} - Les données de réponse.
756
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
757
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
758
+ * @throws {Error} - En cas d'erreur inattendue.
759
+ */
760
+ async getProjectsAdmin(data = {}) {
761
+ return this.callIsConnected("GET_PROJECTS_ADMIN", data);
762
+ }
763
+
764
+ /**
765
+ * Récupérer les POIs non administrables : Récupère la liste des POIs accessibles sans droits d'administration.
766
+ * Constant : GET_POIS_NO_ADMIN
767
+ * @param {Object} data - Les données à envoyer.
768
+ * @param {string} data.name - Nom ou terme recherché
769
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["poi"])
770
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
771
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
772
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
773
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["poi"])
774
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
775
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
776
+ * @param {object} data.filters - data.filters (default: {"parent.@userId":{"$exists":true}})
777
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^parent\.(?:[a-f0-9]{24}|@\w+)$
778
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
779
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
780
+ * @returns {Promise<Object>} - Les données de réponse.
781
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
782
+ * @throws {Error} - En cas d'erreur inattendue.
783
+ */
784
+ async getPoisNoAdmin(data = {}) {
785
+ return this.call("GET_POIS_NO_ADMIN", data);
786
+ }
787
+
788
+ /**
789
+ * Récupérer les POIs administrables : Récupère la liste des POIs administrables par l’utilisateur.
790
+ * Constant : GET_POIS_ADMIN
791
+ * @param {Object} data - Les données à envoyer.
792
+ * @param {string} data.name - Nom ou terme recherché
793
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["poi"])
794
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
795
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
796
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
797
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["poi"])
798
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
799
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
800
+ * @param {object} data.filters - data.filters (default: {"parent.@{pathParams.id}":{"$exists":true}})
801
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^parent\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$
802
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
803
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
804
+ * @param {Object} data.pathParams - Les paramètres de chemin.
805
+ * @param {string} data.pathParams.type - Type d'entité (default: "citoyens")
806
+ * @param {string} data.pathParams.id - ID de l'utilisateur ou de l'entité
807
+ * @returns {Promise<Object>} - Les données de réponse.
808
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
809
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
810
+ * @throws {Error} - En cas d'erreur inattendue.
811
+ */
812
+ async getPoisAdmin(data = {}) {
813
+ return this.callIsConnected("GET_POIS_ADMIN", data);
814
+ }
815
+
816
+ /**
817
+ * Récupérer les organisations non administrables : Récupère la liste des organisations auxquelles l’utilisateur appartient sans les administrer.
818
+ * Constant : GET_ORGANIZATIONS_NO_ADMIN
819
+ * @param {Object} data - Les données à envoyer.
820
+ * @param {string} data.name - Nom ou terme recherché
821
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"])
822
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
823
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
824
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
825
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"])
826
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
827
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
828
+ * @param {object} data.filters - data.filters (default: {"links.members.@userId":{"$exists":true},"links.members.@userId.toBeValidated":{"$exists":false},"links.members.@userId.isInviting":{"$exists":false}})
829
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.members\.(?:[a-f0-9]{24}|@\w+)$ and keys matching ^links\.members\.(?:[a-f0-9]{24}|@\w+)\.toBeValidated$ and keys matching ^links\.members\.(?:[a-f0-9]{24}|@\w+)\.isInviting$
830
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
831
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
832
+ * @returns {Promise<Object>} - Les données de réponse.
833
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
834
+ * @throws {Error} - En cas d'erreur inattendue.
835
+ */
836
+ async getOrganizationsNoAdmin(data = {}) {
837
+ return this.call("GET_ORGANIZATIONS_NO_ADMIN", data);
838
+ }
839
+
840
+ /**
841
+ * Récupérer les organisations administrables : Récupère les organisations administrées par l’utilisateur.
842
+ * Constant : GET_ORGANIZATIONS_ADMIN
843
+ * @param {Object} data - Les données à envoyer.
844
+ * @param {string} data.name - Nom ou terme recherché
845
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"])
846
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
847
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
848
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
849
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"])
850
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
851
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
852
+ * @param {object} data.filters - data.filters (default: {"links.members.@{pathParams.id}":{"$exists":true},"links.members.@{pathParams.id}.toBeValidated":{"$exists":false},"links.members.@{pathParams.id}.isInviting":{"$exists":false}})
853
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.members\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$ and keys matching ^links\.members\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$ and keys matching ^links\.members\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$
854
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
855
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
856
+ * @param {Object} data.pathParams - Les paramètres de chemin.
857
+ * @param {string} data.pathParams.type - Type d'entité (default: "citoyens")
858
+ * @param {string} data.pathParams.id - ID de l'utilisateur ou de l'entité
859
+ * @returns {Promise<Object>} - Les données de réponse.
860
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
861
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
862
+ * @throws {Error} - En cas d'erreur inattendue.
863
+ */
864
+ async getOrganizationsAdmin(data = {}) {
865
+ return this.callIsConnected("GET_ORGANIZATIONS_ADMIN", data);
866
+ }
867
+
868
+ /**
869
+ * Récupérer les membres non administrables : Récupère les membres d’une organisation sans droits d’admin.
870
+ * Constant : GET_MEMBERS_NO_ADMIN
871
+ * @param {Object} data - Les données à envoyer.
872
+ * @param {string} data.name - Nom ou terme recherché
873
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
874
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
875
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
876
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
877
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
878
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
879
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
880
+ * @param {object} data.filters - data.filters
881
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.memberOf\.(?:[a-f0-9]{24}|@\w+)$ and keys matching ^links\.memberOf\.(?:[a-f0-9]{24}|@\w+)\.toBeValidated$ and keys matching ^links\.memberOf\.(?:[a-f0-9]{24}|@\w+)\.isInviting$ and keys matching ^links\.memberOf\.(?:[a-f0-9]{24}|@\w+)\.isAdmin$ and keys matching ^links\.memberOf\.(?:[a-f0-9]{24}|@\w+)\.roles$
882
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
883
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
884
+ * @returns {Promise<Object>} - Les données de réponse.
885
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
886
+ * @throws {Error} - En cas d'erreur inattendue.
887
+ */
888
+ async getMembersNoAdmin(data = {}) {
889
+ return this.call("GET_MEMBERS_NO_ADMIN", data);
890
+ }
891
+
892
+ /**
893
+ * Récupérer les membres administrables : Récupère les membres d’une organisation administrée par l’utilisateur.
894
+ * Constant : GET_MEMBERS_ADMIN
895
+ * @param {Object} data - Les données à envoyer.
896
+ * @param {string} data.name - Nom ou terme recherché
897
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
898
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
899
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
900
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
901
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
902
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
903
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
904
+ * @param {object} data.filters - data.filters (default: {"links.memberOf.@{pathParams.id}":{"$exists":true},"links.memberOf.@{pathParams.id}.toBeValidated":{"$exists":false},"links.memberOf.@{pathParams.id}.isInviting":{"$exists":false}})
905
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.memberOf\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$ and keys matching ^links\.memberOf\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$ and keys matching ^links\.memberOf\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$ and keys matching ^links\.memberOf\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isAdmin$ and keys matching ^links\.memberOf\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.roles$
906
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
907
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
908
+ * @param {Object} data.pathParams - Les paramètres de chemin.
909
+ * @param {string} data.pathParams.id - ID de l'organisation
910
+ * @returns {Promise<Object>} - Les données de réponse.
911
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
912
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
913
+ * @throws {Error} - En cas d'erreur inattendue.
914
+ */
915
+ async getMembersAdmin(data = {}) {
916
+ return this.callIsConnected("GET_MEMBERS_ADMIN", data);
917
+ }
918
+
919
+ /**
920
+ * Récupérer les amis administrables : Récupère les amis administrée par l’utilisateur.
921
+ * Constant : GET_FRIENDS_ADMIN
922
+ * @param {Object} data - Les données à envoyer.
923
+ * @param {string} data.name - Nom ou terme recherché
924
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens"])
925
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
926
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
927
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
928
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens"])
929
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
930
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
931
+ * @param {object} data.filters - data.filters (default: {"links.friends.@{pathParams.id}":{"$exists":true},"links.friends.@{pathParams.id}.toBeValidated":{"$exists":false},"links.friends.@{pathParams.id}.isInviting":{"$exists":false}})
932
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.friends\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$ and keys matching ^links\.friends\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$ and keys matching ^links\.friends\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$
933
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
934
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
935
+ * @param {Object} data.pathParams - Les paramètres de chemin.
936
+ * @param {string} data.pathParams.id - ID de l'utilisateur (default: "@userId")
937
+ * @returns {Promise<Object>} - Les données de réponse.
938
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
939
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
940
+ * @throws {Error} - En cas d'erreur inattendue.
941
+ */
942
+ async getFriendsAdmin(data = {}) {
943
+ return this.callIsConnected("GET_FRIENDS_ADMIN", data);
944
+ }
945
+
946
+ /**
947
+ * Récupérer les suivis non administrables : Liste les entités suivies sans droits d’admin.
948
+ * Constant : GET_SUBSCRIPTIONS
949
+ * @param {Object} data - Les données à envoyer.
950
+ * @param {string} data.name - Nom ou terme recherché
951
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"])
952
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
953
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
954
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
955
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"])
956
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
957
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
958
+ * @param {object} data.filters - data.filters (default: {"links.followers.@userId":{"$exists":true},"links.followers.@{userId}.toBeValidated":{"$exists":false},"links.followers.@{userId}.isInviting":{"$exists":false}})
959
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$ and keys matching ^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$ and keys matching ^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$
960
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
961
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
962
+ * @returns {Promise<Object>} - Les données de réponse.
963
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
964
+ * @throws {Error} - En cas d'erreur inattendue.
965
+ */
966
+ async getSubscriptions(data = {}) {
967
+ return this.call("GET_SUBSCRIPTIONS", data);
968
+ }
969
+
970
+ /**
971
+ * Récupérer les suivis administrables : Liste les entités suivies par l’utilisateur, sur lesquelles il est admin.
972
+ * Constant : GET_SUBSCRIPTIONS_ADMIN
973
+ * @param {Object} data - Les données à envoyer.
974
+ * @param {string} data.name - Nom ou terme recherché
975
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"])
976
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
977
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
978
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
979
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"])
980
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
981
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
982
+ * @param {object} data.filters - data.filters (default: {"links.followers.@{pathParams.id}":{"$exists":true},"links.followers.@{pathParams.id}.toBeValidated":{"$exists":false},"links.followers.@{pathParams.id}.isInviting":{"$exists":false}})
983
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$ and keys matching ^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$ and keys matching ^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$
984
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
985
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
986
+ * @param {Object} data.pathParams - Les paramètres de chemin.
987
+ * @param {string} data.pathParams.id - ID de l'utilisateur (default: "@userId")
988
+ * @returns {Promise<Object>} - Les données de réponse.
989
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
990
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
991
+ * @throws {Error} - En cas d'erreur inattendue.
992
+ */
993
+ async getSubscriptionsAdmin(data = {}) {
994
+ return this.callIsConnected("GET_SUBSCRIPTIONS_ADMIN", data);
995
+ }
996
+
997
+ /**
998
+ * Récupérer les abonnés non administrables : Liste les abonnés sans droits d’admin.
999
+ * Constant : GET_SUBSCRIBERS
1000
+ * @param {Object} data - Les données à envoyer.
1001
+ * @param {string} data.name - Nom ou terme recherché
1002
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens"])
1003
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1004
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
1005
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1006
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens"])
1007
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1008
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1009
+ * @param {object} data.filters - data.filters (default: {"links.follows.@userId":{"$exists":true},"links.follows.@{userId}.toBeValidated":{"$exists":false},"links.follows.@{userId}.isInviting":{"$exists":false}})
1010
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.follows\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$ and keys matching ^links\.follows\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$ and keys matching ^links\.follows\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$
1011
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
1012
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
1013
+ * @returns {Promise<Object>} - Les données de réponse.
1014
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1015
+ * @throws {Error} - En cas d'erreur inattendue.
1016
+ */
1017
+ async getSubscribers(data = {}) {
1018
+ return this.call("GET_SUBSCRIBERS", data);
1019
+ }
1020
+
1021
+ /**
1022
+ * Récupérer les abonnés administrables : Liste les abonnés d’une entité administrée par l’utilisateur.
1023
+ * Constant : GET_SUBSCRIBERS_ADMIN
1024
+ * @param {Object} data - Les données à envoyer.
1025
+ * @param {string} data.name - Nom ou terme recherché
1026
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens"])
1027
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1028
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
1029
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1030
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens"])
1031
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1032
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1033
+ * @param {object} data.filters - data.filters (default: {"links.follows.@{pathParams.id}":{"$exists":true}})
1034
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.follows\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$
1035
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
1036
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
1037
+ * @param {Object} data.pathParams - Les paramètres de chemin.
1038
+ * @param {string} data.pathParams.type - Type d'entité (default: "citoyens")
1039
+ * @param {string} data.pathParams.id - ID de l'utilisateur ou de l'entité
1040
+ * @returns {Promise<Object>} - Les données de réponse.
1041
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1042
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1043
+ * @throws {Error} - En cas d'erreur inattendue.
1044
+ */
1045
+ async getSubscribersAdmin(data = {}) {
1046
+ return this.callIsConnected("GET_SUBSCRIBERS_ADMIN", data);
1047
+ }
1048
+
1049
+ /**
1050
+ * Récupérer les contributeurs non administrables : Récupère les contributeurs sans droits d’admin.
1051
+ * Constant : GET_CONTRIBUTORS
1052
+ * @param {Object} data - Les données à envoyer.
1053
+ * @param {string} data.name - Nom ou terme recherché
1054
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1055
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1056
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
1057
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1058
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1059
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1060
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1061
+ * @param {object} data.filters - data.filters
1062
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.projects\.(?:[a-f0-9]{24}|@\w+)$ and keys matching ^links\.projects\.(?:[a-f0-9]{24}|@\w+)\.toBeValidated$ and keys matching ^links\.projects\.(?:[a-f0-9]{24}|@\w+)\.isInviting$ and keys matching ^links\.projects\.(?:[a-f0-9]{24}|@\w+)\.isAdmin$ and keys matching ^links\.projects\.(?:[a-f0-9]{24}|@\w+)\.roles$
1063
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
1064
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
1065
+ * @returns {Promise<Object>} - Les données de réponse.
1066
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1067
+ * @throws {Error} - En cas d'erreur inattendue.
1068
+ */
1069
+ async getContributors(data = {}) {
1070
+ return this.call("GET_CONTRIBUTORS", data);
1071
+ }
1072
+
1073
+ /**
1074
+ * Récupérer les contributeurs administrables : Récupère les contributeurs d’un project l’utilisateur est admin.
1075
+ * Constant : GET_CONTRIBUTORS_ADMIN
1076
+ * @param {Object} data - Les données à envoyer.
1077
+ * @param {string} data.name - Nom ou terme recherché
1078
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1079
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1080
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
1081
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1082
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1083
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1084
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1085
+ * @param {object} data.filters - data.filters (default: {"links.projects.@{pathParams.id}":{"$exists":true},"links.projects.@{pathParams.id}.toBeValidated":{"$exists":false},"links.projects.@{pathParams.id}.isInviting":{"$exists":false}})
1086
+ * @param {Object.<string, object>} data.filters - Objet dont les clés keys matching ^links\.projects\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$ and keys matching ^links\.projects\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$ and keys matching ^links\.projects\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$ and keys matching ^links\.projects\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isAdmin$ and keys matching ^links\.projects\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.roles$
1087
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
1088
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
1089
+ * @param {Object} data.pathParams - Les paramètres de chemin.
1090
+ * @param {string} data.pathParams.id - ID du projet
1091
+ * @returns {Promise<Object>} - Les données de réponse.
1092
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1093
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1094
+ * @throws {Error} - En cas d'erreur inattendue.
1095
+ */
1096
+ async getContributorsAdmin(data = {}) {
1097
+ return this.callIsConnected("GET_CONTRIBUTORS_ADMIN", data);
1098
+ }
1099
+
1100
+ /**
1101
+ * Recherche globale des badges : Recherche des badges publics en fonction de divers critères.
1102
+ * Constant : GET_BADGES
1103
+ * @param {Object} data - Les données à envoyer.
1104
+ * @param {string} data.name - Nom ou terme recherché
1105
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["badges"])
1106
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1107
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
1108
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1109
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["badges"])
1110
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1111
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1112
+ * @param {object} data.filters - data.filters
1113
+ * @param {boolean} data.filters.preferences.private - Indique si le badge est privé ou public (default: false)
1114
+ * @param {boolean} data.filters.isParcours - Indique si le badge est un parcours
1115
+ * @param {object} data.filters.$or - data.filters.$or
1116
+ * @param {Object.<string, object>} data.filters.$or - Objet dont les clés keys matching ^issuer\.(?:[a-f0-9]{24}|@\w+)$
1117
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
1118
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
1119
+ * @returns {Promise<Object>} - Les données de réponse.
1120
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1121
+ * @throws {Error} - En cas d'erreur inattendue.
1122
+ */
1123
+ async getBadges(data = {}) {
1124
+ return this.call("GET_BADGES", data);
1125
+ }
1126
+
1127
+ /**
1128
+ * Recherche globale des badges : Recherche des badges publics en fonction de divers critères.
1129
+ * Constant : GET_BADGES_FILTERS
1130
+ * @param {Object} data - Les données à envoyer.
1131
+ * @param {string} data.name - Nom ou terme recherché
1132
+ * @param {Array<string>} data.fields - data.fields (default: ["badges"])
1133
+ * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","projects","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1134
+ * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1135
+ * @param {string} data.initType - Type initial de la recherche, vide par défaut (default: "")
1136
+ * @param {boolean} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1137
+ * @param {Array<string>} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","projects","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1138
+ * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1139
+ * @param {boolean} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1140
+ * @param {object} data.ranges - data.ranges (default: {"citoyens":{"indexMin":0,"indexMax":30},"projects":{"indexMin":0,"indexMax":30},"NGO":{"indexMin":0,"indexMax":30},"LocalBusiness":{"indexMin":0,"indexMax":30},"Group":{"indexMin":0,"indexMax":30},"GovernmentOrganization":{"indexMin":0,"indexMax":30},"Cooperative":{"indexMin":0,"indexMax":30}})
1141
+ * @param {Object.<string, object>} data.ranges - Objet dont les clés keys matching ^[a-zA-Z][a-zA-Z0-9]*$
1142
+ * @param {object} data.filters - data.filters
1143
+ * @param {string} data.locality - Localité vide ou spécifique (default: "")
1144
+ * @param {boolean} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
1145
+ * @returns {Promise<Object>} - Les données de réponse.
1146
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1147
+ * @throws {Error} - En cas d'erreur inattendue.
1148
+ */
1149
+ async getBadgesFilters(data = {}) {
1150
+ return this.call("GET_BADGES_FILTERS", data);
1151
+ }
1152
+
1153
+ /**
1154
+ * Suivre un élément : Permet à un utilisateur de suivre un élément (projet, organisation...).
1155
+ * Constant : CONNECT
1156
+ * @param {Object} data - Les données à envoyer.
1157
+ * @param {string} data.childId - ID de l'élément à suivre (projet, organisation...) (default: "@userId")
1158
+ * @param {string} data.childType - Type de l'élément à suivre (default: "citoyens")
1159
+ * @param {string} data.parentType - Type de l'élément parent (projet, organisation...)
1160
+ * @param {string} data.parentId - ID de l'élément parent
1161
+ * @param {string} data.connectType - Type de connexion
1162
+ * @returns {Promise<Object>} - Les données de réponse.
1163
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1164
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1165
+ * @throws {Error} - En cas d'erreur inattendue.
1166
+ */
1167
+ async connect(data = {}) {
1168
+ return this.callIsConnected("CONNECT", data);
1169
+ }
1170
+
1171
+ /**
1172
+ * Se déconnecter d'un élément : Permet de supprimer le lien entre un utilisateur et un élément.
1173
+ * Constant : DISCONNECT
1174
+ * @param {Object} data - Les données à envoyer.
1175
+ * @param {string} data.childId - ID de l'élément à déconnecter (projet, organisation...) (default: "@userId")
1176
+ * @param {string} data.childType - Type de l'élément à déconnecter (default: "citoyens")
1177
+ * @param {string} data.parentType - Type de l'élément parent (projet, organisation...)
1178
+ * @param {string} data.parentId - ID de l'élément parent
1179
+ * @param {string} data.connectType - Type de connexion
1180
+ * @returns {Promise<Object>} - Les données de réponse.
1181
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1182
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1183
+ * @throws {Error} - En cas d'erreur inattendue.
1184
+ */
1185
+ async disconnect(data = {}) {
1186
+ return this.callIsConnected("DISCONNECT", data);
1187
+ }
1188
+
1189
+ /**
1190
+ * Récuperer l'id et la collection d'un element en fonction du slug : Récuperer l'id et la collection d'un element en fonction du slug
1191
+ * Constant : GET_ELEMENTS_KEY
1192
+ * @param {Object} data.pathParams - Les paramètres de chemin.
1193
+ * @param {string} data.pathParams.slug - Slug de l'élément à récupérer
1194
+ * @returns {Promise<Object>} - Les données de réponse.
1195
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1196
+ * @throws {Error} - En cas d'erreur inattendue.
1197
+ */
1198
+ async getElementsKey(data = {}) {
1199
+ return this.call("GET_ELEMENTS_KEY", data);
1200
+ }
1201
+
1202
+ /**
1203
+ * Récupérer les favoris d'un utilisateur : Récupère la liste des favoris d’un utilisateur.
1204
+ * Constant : GET_FAVORIS
1205
+ * @param {Object} data.pathParams - Les paramètres de chemin.
1206
+ * @param {string} data.pathParams.id - ID de l'utilisateur (default: "@userId")
1207
+ * @returns {Promise<Object>} - Les données de réponse.
1208
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1209
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1210
+ * @throws {Error} - En cas d'erreur inattendue.
1211
+ */
1212
+ async getFavoris(data = {}) {
1213
+ return this.callIsConnected("GET_FAVORIS", data);
1214
+ }
1215
+
1216
+ /**
1217
+ * Supprimer un favori : Supprime un élément des favoris de l’utilisateur.
1218
+ * Constant : DELETE_FAVORIS
1219
+ * @param {Object} data - Les données à envoyer.
1220
+ * @param {string} data.id - ID de l’utilisateur (default: "@userId")
1221
+ * @param {string} data.collection - data.collection (default: "citoyens")
1222
+ * @param {string} data.path - Chemin à retirer (default: "preferences.search.@{pathParams.index}")
1223
+ * @param {string} data.pull - data.pull
1224
+ * @param {string} data.value - Valeur (default: "")
1225
+ * @param {Object} data.pathParams - Les paramètres de chemin.
1226
+ * @param {number} data.pathParams.index - Index du favoris à supprimer
1227
+ * @returns {Promise<Object>} - Les données de réponse.
1228
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1229
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1230
+ * @throws {Error} - En cas d'erreur inattendue.
1231
+ */
1232
+ async deleteFavoris(data = {}) {
1233
+ return this.callIsConnected("DELETE_FAVORIS", data);
1234
+ }
1235
+
1236
+ /**
1237
+ * Ajouter un favori : Ajoute un élément aux favoris de l’utilisateur.
1238
+ * Constant : ADD_FAVORIS
1239
+ * @param {Object} data - Les données à envoyer.
1240
+ * @param {string} data.id - ID de l’utilisateur (default: "@userId")
1241
+ * @param {string} data.collection - data.collection (default: "citoyens")
1242
+ * @param {string} data.path - Chemin à ajouter (default: "preferences.search")
1243
+ * @param {boolean} data.arrayForm - data.arrayForm
1244
+ * @param {object} data.value - data.value
1245
+ * @param {string} data.value.url - data.value.url
1246
+ * @param {string} data.value.name - data.value.name
1247
+ * @param {string} data.value.description - data.value.description
1248
+ * @param {Array<string>} data.value.tags - data.value.tags
1249
+ * @param {object} data.value.locality - data.value.locality
1250
+ * @param {Object.<string, undefined>} data.value.locality - Objet dont les clés keys matching ^[a-f0-9]{24}$
1251
+ * @returns {Promise<Object>} - Les données de réponse.
1252
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1253
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1254
+ * @throws {Error} - En cas d'erreur inattendue.
1255
+ */
1256
+ async addFavoris(data = {}) {
1257
+ return this.callIsConnected("ADD_FAVORIS", data);
1258
+ }
1259
+
1260
+ /**
1261
+ * Créer une organisation : Crée une nouvelle organisation.
1262
+ * Constant : ADD_ORGANIZATION
1263
+ * @param {Object} data - Les données à envoyer.
1264
+ * @param {string} data.id - ID de l’organisation
1265
+ * @param {string} data.collection - Collection de l’organisation (default: "organizations")
1266
+ * @param {string} data.key - data.key (default: "organization")
1267
+ * @param {string} data.name - Nom de l’organisation
1268
+ * @param {string} data.type - Type d’organisation
1269
+ * @param {string} data.role - Rôle principal de l’organisation
1270
+ * @param {Array<string>} data.tags - data.tags
1271
+ * @param {string} data.email - Email de l’organisation
1272
+ * @param {string} data.shortDescription - Description courte
1273
+ * @param {string} data.url - Site web
1274
+ * @param {object} data.preferences - data.preferences (default: {"isOpenData":true,"isOpenEdition":true})
1275
+ * @param {boolean} data.preferences.isOpenData - Open data (true/false) (default: true)
1276
+ * @param {boolean} data.preferences.isOpenEdition - Édition ouverte (true/false) (default: true)
1277
+ * @param {object} data.geo - Coordonnées géographiques
1278
+ * @param {string} data.geo.@type - data.geo.@type
1279
+ * @param {string | number} data.geo.latitude - data.geo.latitude
1280
+ * @param {string | number} data.geo.longitude - data.geo.longitude
1281
+ * @param {object} data.geoPosition - Position géographique GeoJSON
1282
+ * @param {string} data.geoPosition.type - Type GeoJSON (doit être 'Point')
1283
+ * @param {Array<number>} data.geoPosition.coordinates - Tableau contenant [longitude, latitude]
1284
+ * @param {boolean} data.geoPosition.float - Indicateur pour forcer la conversion en float côté serveur (default: true)
1285
+ * @param {object} data.address - data.address
1286
+ * @param {string} data.address.@type - data.address.@type
1287
+ * @param {string} data.address.addressCountry - data.address.addressCountry
1288
+ * @param {string} data.address.codeInsee - data.address.codeInsee
1289
+ * @param {string} data.address.addressLocality - data.address.addressLocality
1290
+ * @param {string} data.address.localityId - data.address.localityId
1291
+ * @param {string} data.address.level1 - data.address.level1
1292
+ * @param {string} data.address.level1Name - data.address.level1Name
1293
+ * @param {string} data.address.level3 - ID du département. Peut être vide pour les pays étrangers.
1294
+ * @param {string} data.address.level3Name - Nom du département. Peut être vide pour les pays étrangers.
1295
+ * @param {string} data.address.level4 - ID de la commune. Peut être vide pour les pays étrangers.
1296
+ * @param {string} data.address.level4Name - Nom de la commune. Peut être vide pour les pays étrangers.
1297
+ * @param {string} data.address.postalCode - data.address.postalCode
1298
+ * @param {string} data.address.streetAddress - data.address.streetAddress
1299
+ * @param {string} data.scope - data.scope (default: "")
1300
+ * @returns {Promise<Object>} - Les données de réponse.
1301
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1302
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1303
+ * @throws {Error} - En cas d'erreur inattendue.
1304
+ */
1305
+ async addOrganization(data = {}) {
1306
+ return this.callIsConnected("ADD_ORGANIZATION", data);
1307
+ }
1308
+
1309
+ /**
1310
+ * Créer un projet : Crée un nouveau projet avec des informations de base et des options supplémentaires.
1311
+ * Constant : ADD_PROJECT
1312
+ * @param {Object} data - Les données à envoyer.
1313
+ * @param {string} data.id - ID
1314
+ * @param {string} data.collection - Collection (default: "projects")
1315
+ * @param {string} data.key - data.key (default: "project")
1316
+ * @param {object} data.parent - Objet contenant les entités parentes (clé = ID). null signifie que les parents ne sont pas modifiés. (default: {"@userId":{"type":"citoyens"}})
1317
+ * @param {Object.<string, object>} data.parent - Objet dont les clés keys matching ^(?:[a-f0-9]{24}|@userId)$
1318
+ * @param {string} data.name - Nom du projet
1319
+ * @param {boolean} data.public - Visibilité (true/false) (default: true)
1320
+ * @param {Array<string>} data.tags - data.tags
1321
+ * @param {string} data.shortDescription - Description courte
1322
+ * @param {string} data.url - Site web
1323
+ * @param {object} data.preferences - data.preferences (default: {"isOpenData":false,"isOpenEdition":false,"crowdfunding":true})
1324
+ * @param {boolean} data.preferences.isOpenData - Open data (true/false) (default: false)
1325
+ * @param {boolean} data.preferences.isOpenEdition - Édition ouverte (true/false) (default: false)
1326
+ * @param {boolean} data.preferences.crowdfunding - Crowdfunding (true/false) (default: true)
1327
+ * @param {object} data.geo - Coordonnées géographiques
1328
+ * @param {string} data.geo.@type - data.geo.@type
1329
+ * @param {string | number} data.geo.latitude - data.geo.latitude
1330
+ * @param {string | number} data.geo.longitude - data.geo.longitude
1331
+ * @param {object} data.geoPosition - Position géographique GeoJSON
1332
+ * @param {string} data.geoPosition.type - Type GeoJSON (doit être 'Point')
1333
+ * @param {Array<number>} data.geoPosition.coordinates - Tableau contenant [longitude, latitude]
1334
+ * @param {boolean} data.geoPosition.float - Indicateur pour forcer la conversion en float côté serveur (default: true)
1335
+ * @param {object} data.address - data.address
1336
+ * @param {string} data.address.@type - data.address.@type
1337
+ * @param {string} data.address.addressCountry - data.address.addressCountry
1338
+ * @param {string} data.address.codeInsee - data.address.codeInsee
1339
+ * @param {string} data.address.addressLocality - data.address.addressLocality
1340
+ * @param {string} data.address.localityId - data.address.localityId
1341
+ * @param {string} data.address.level1 - data.address.level1
1342
+ * @param {string} data.address.level1Name - data.address.level1Name
1343
+ * @param {string} data.address.level3 - ID du département. Peut être vide pour les pays étrangers.
1344
+ * @param {string} data.address.level3Name - Nom du département. Peut être vide pour les pays étrangers.
1345
+ * @param {string} data.address.level4 - ID de la commune. Peut être vide pour les pays étrangers.
1346
+ * @param {string} data.address.level4Name - Nom de la commune. Peut être vide pour les pays étrangers.
1347
+ * @param {string} data.address.postalCode - data.address.postalCode
1348
+ * @param {string} data.address.streetAddress - data.address.streetAddress
1349
+ * @param {string} data.scope - data.scope (default: "")
1350
+ * @returns {Promise<Object>} - Les données de réponse.
1351
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1352
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1353
+ * @throws {Error} - En cas d'erreur inattendue.
1354
+ */
1355
+ async addProject(data = {}) {
1356
+ return this.callIsConnected("ADD_PROJECT", data);
1357
+ }
1358
+
1359
+ /**
1360
+ * Créer un POI : Crée un nouveau POI (Point d'Intérêt).
1361
+ * Constant : ADD_POI
1362
+ * @param {Object} data - Les données à envoyer.
1363
+ * @param {string} data.id - ID du POI
1364
+ * @param {string} data.collection - Collection du POI (default: "poi")
1365
+ * @param {string} data.key - data.key (default: "poi")
1366
+ * @param {string} data.type - Type de POI
1367
+ * @param {object} data.parent - Objet contenant les entités parentes (clé = ID). null signifie que les parents ne sont pas modifiés. (default: {"@userId":{"type":"citoyens"}})
1368
+ * @param {Object.<string, object>} data.parent - Objet dont les clés keys matching ^(?:[a-f0-9]{24}|@userId)$
1369
+ * @param {string} data.name - Nom du poi
1370
+ * @param {string} data.description - Description
1371
+ * @param {Array<string>} data.tags - data.tags
1372
+ * @param {Array<string>} data.urls - URLs externes associées
1373
+ * @param {object} data.geo - Coordonnées géographiques
1374
+ * @param {string} data.geo.@type - data.geo.@type
1375
+ * @param {string | number} data.geo.latitude - data.geo.latitude
1376
+ * @param {string | number} data.geo.longitude - data.geo.longitude
1377
+ * @param {object} data.geoPosition - Position géographique GeoJSON
1378
+ * @param {string} data.geoPosition.type - Type GeoJSON (doit être 'Point')
1379
+ * @param {Array<number>} data.geoPosition.coordinates - Tableau contenant [longitude, latitude]
1380
+ * @param {boolean} data.geoPosition.float - Indicateur pour forcer la conversion en float côté serveur (default: true)
1381
+ * @param {object} data.address - data.address
1382
+ * @param {string} data.address.@type - data.address.@type
1383
+ * @param {string} data.address.addressCountry - data.address.addressCountry
1384
+ * @param {string} data.address.codeInsee - data.address.codeInsee
1385
+ * @param {string} data.address.addressLocality - data.address.addressLocality
1386
+ * @param {string} data.address.localityId - data.address.localityId
1387
+ * @param {string} data.address.level1 - data.address.level1
1388
+ * @param {string} data.address.level1Name - data.address.level1Name
1389
+ * @param {string} data.address.level3 - ID du département. Peut être vide pour les pays étrangers.
1390
+ * @param {string} data.address.level3Name - Nom du département. Peut être vide pour les pays étrangers.
1391
+ * @param {string} data.address.level4 - ID de la commune. Peut être vide pour les pays étrangers.
1392
+ * @param {string} data.address.level4Name - Nom de la commune. Peut être vide pour les pays étrangers.
1393
+ * @param {string} data.address.postalCode - data.address.postalCode
1394
+ * @param {string} data.address.streetAddress - data.address.streetAddress
1395
+ * @param {string} data.scope - data.scope (default: "")
1396
+ * @returns {Promise<Object>} - Les données de réponse.
1397
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1398
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1399
+ * @throws {Error} - En cas d'erreur inattendue.
1400
+ */
1401
+ async addPoi(data = {}) {
1402
+ return this.callIsConnected("ADD_POI", data);
1403
+ }
1404
+
1405
+ /**
1406
+ * Créer un événement : Crée un nouvel événement.
1407
+ * Constant : ADD_EVENT
1408
+ * @param {Object} data - Les données à envoyer.
1409
+ * @param {string} data.id - ID de l’événement
1410
+ * @param {string} data.collection - Collection de l’événement (default: "events")
1411
+ * @param {string} data.key - data.key (default: "event")
1412
+ * @param {string} data.type - Type d’événement
1413
+ * @param {boolean} data.public - Visibilité (true/false) (default: true)
1414
+ * @param {object} data.organizer - Objet contenant les entités parentes (clé = ID). null signifie que les parents ne sont pas modifiés. (default: {"@userId":{"type":"citoyens"}})
1415
+ * @param {Object.<string, object>} data.organizer - Objet dont les clés keys matching ^(?:[a-f0-9]{24}|@userId)$
1416
+ * @param {object} data.parent - Objet contenant les entités parentes (clé = ID). null signifie que les parents ne sont pas modifiés.
1417
+ * @param {Object.<string, object>} data.parent - Objet dont les clés keys matching ^(?:[a-f0-9]{24}|@userId)$
1418
+ * @param {string} data.name - Nom du poi
1419
+ * @param {string} data.shortDescription - Description courte
1420
+ * @param {Array<string>} data.tags - data.tags
1421
+ * @param {string} data.url - Site web
1422
+ * @param {string} data.email - Email de l’organisation
1423
+ * @param {object} data.preferences - data.preferences (default: {"isOpenData":false,"isOpenEdition":false})
1424
+ * @param {boolean} data.preferences.isOpenData - Open data (true/false) (default: false)
1425
+ * @param {boolean} data.preferences.isOpenEdition - Édition ouverte (true/false) (default: false)
1426
+ * @param {string} data.timeZone - Fuseau horaire IANA
1427
+ * @param {boolean} data.recurrency - Indique si l'événement est récurrent (true/false) (default: false)
1428
+ * @param {string} data.startDate - Date et heure de début (ISO 8601 avec offset)
1429
+ * @param {string} data.endDate - Date et heure de fin (ISO 8601 avec offset)
1430
+ * @param {Array<any>} data.openingHours - Liste ordonnée des jours de la semaine avec leurs horaires d'ouverture ou une chaîne vide pour ignorer le jour (default: ["","","","","","",""])
1431
+ * @param {object} data.geo - Coordonnées géographiques
1432
+ * @param {string} data.geo.@type - data.geo.@type
1433
+ * @param {string | number} data.geo.latitude - data.geo.latitude
1434
+ * @param {string | number} data.geo.longitude - data.geo.longitude
1435
+ * @param {object} data.geoPosition - Position géographique GeoJSON
1436
+ * @param {string} data.geoPosition.type - Type GeoJSON (doit être 'Point')
1437
+ * @param {Array<number>} data.geoPosition.coordinates - Tableau contenant [longitude, latitude]
1438
+ * @param {boolean} data.geoPosition.float - Indicateur pour forcer la conversion en float côté serveur (default: true)
1439
+ * @param {object} data.address - data.address
1440
+ * @param {string} data.address.@type - data.address.@type
1441
+ * @param {string} data.address.addressCountry - data.address.addressCountry
1442
+ * @param {string} data.address.codeInsee - data.address.codeInsee
1443
+ * @param {string} data.address.addressLocality - data.address.addressLocality
1444
+ * @param {string} data.address.localityId - data.address.localityId
1445
+ * @param {string} data.address.level1 - data.address.level1
1446
+ * @param {string} data.address.level1Name - data.address.level1Name
1447
+ * @param {string} data.address.level3 - ID du département. Peut être vide pour les pays étrangers.
1448
+ * @param {string} data.address.level3Name - Nom du département. Peut être vide pour les pays étrangers.
1449
+ * @param {string} data.address.level4 - ID de la commune. Peut être vide pour les pays étrangers.
1450
+ * @param {string} data.address.level4Name - Nom de la commune. Peut être vide pour les pays étrangers.
1451
+ * @param {string} data.address.postalCode - data.address.postalCode
1452
+ * @param {string} data.address.streetAddress - data.address.streetAddress
1453
+ * @param {string} data.scope - data.scope (default: "")
1454
+ * @returns {Promise<Object>} - Les données de réponse.
1455
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1456
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1457
+ * @throws {Error} - En cas d'erreur inattendue.
1458
+ */
1459
+ async addEvent(data = {}) {
1460
+ return this.callIsConnected("ADD_EVENT", data);
1461
+ }
1462
+
1463
+ /**
1464
+ * Supprimer un POI : Supprime un POI existant.
1465
+ * Constant : DELETE_POI
1466
+ * @param {Object} data - Les données à envoyer.
1467
+ * @param {string} data.reason - Raison de la suppression (default: "")
1468
+ * @param {Object} data.pathParams - Les paramètres de chemin.
1469
+ * @param {string} data.pathParams.id - ID de l'élément à supprimer
1470
+ * @returns {Promise<Object>} - Les données de réponse.
1471
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1472
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1473
+ * @throws {Error} - En cas d'erreur inattendue.
1474
+ */
1475
+ async deletePoi(data = {}) {
1476
+ return this.callIsConnected("DELETE_POI", data);
1477
+ }
1478
+
1479
+ /**
1480
+ * Supprimer un événement : Supprime un événement spécifique.
1481
+ * Constant : DELETE_EVENT
1482
+ * @param {Object} data - Les données à envoyer.
1483
+ * @param {string} data.reason - Raison de la suppression (default: "")
1484
+ * @param {Object} data.pathParams - Les paramètres de chemin.
1485
+ * @param {string} data.pathParams.id - ID de l'élément à supprimer
1486
+ * @returns {Promise<Object>} - Les données de réponse.
1487
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1488
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1489
+ * @throws {Error} - En cas d'erreur inattendue.
1490
+ */
1491
+ async deleteEvent(data = {}) {
1492
+ return this.callIsConnected("DELETE_EVENT", data);
1493
+ }
1494
+
1495
+ /**
1496
+ * Supprimer un élément : Supprime un élément existant.
1497
+ * Constant : DELETE_ELEMENT
1498
+ * @param {Object} data - Les données à envoyer.
1499
+ * @param {string} data.reason - Raison de la suppression (default: "")
1500
+ * @param {Object} data.pathParams - Les paramètres de chemin.
1501
+ * @param {string} data.pathParams.type - Type d'élément à supprimer
1502
+ * @param {string} data.pathParams.id - ID de l'élément à supprimer
1503
+ * @returns {Promise<Object>} - Les données de réponse.
1504
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1505
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1506
+ * @throws {Error} - En cas d'erreur inattendue.
1507
+ */
1508
+ async deleteElement(data = {}) {
1509
+ return this.callIsConnected("DELETE_ELEMENT", data);
1510
+ }
1511
+
1512
+ /**
1513
+ * Ajouter une image à un élément : Ajoute une image à un élément.
1514
+ * Constant : ADD_IMAGE_ELEMENT
1515
+ * @param {Object} data - Les données à envoyer.
1516
+ * @param {string} data.qquuid - ID unique du fichier
1517
+ * @param {string} data.qqfilename - Nom du fichier
1518
+ * @param {number} data.qqtotalfilesize - Taille totale du fichier
1519
+ * @param {undefined} data.qqfile - Données binaires de l'image
1520
+ * @param {Object} data.pathParams - Les paramètres de chemin.
1521
+ * @param {string} data.pathParams.folder - Dossier de destination
1522
+ * @param {string} data.pathParams.ownerId - ID du propriétaire de l'image
1523
+ * @returns {Promise<Object>} - Les données de réponse.
1524
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1525
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1526
+ * @throws {Error} - En cas d'erreur inattendue.
1527
+ */
1528
+ async addImageElement(data = {}) {
1529
+ return this.callIsConnected("ADD_IMAGE_ELEMENT", data);
1530
+ }
1531
+
1532
+ }
1533
+
1534
+ export default EndpointApi;