@communecter/cocolight-api-client 1.0.20 → 1.0.22

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.
@@ -1,11 +1,15 @@
1
1
  // Fichier généré automatiquement
2
- // eslint-disable-next-line no-unused-vars
3
- import { ApiAuthenticationError, ApiResponseError } from "../error.js";
2
+ // @ts-check
3
+ import { ApiAuthenticationError } from "../error.js";
4
4
 
5
+ /**
6
+ * @typedef {import("../error.js").ApiResponseError} ApiResponseError
7
+ */
8
+
9
+ /**
10
+ * Classe EndpointApi générée automatiquement depuis endpoints-copie.json
11
+ */
5
12
  class EndpointApi {
6
- /**
7
- * @param {Object} apiClient - Instance du client API.
8
- */
9
13
  constructor(apiClient) {
10
14
  this.apiClient = apiClient;
11
15
  }
@@ -17,15 +21,7 @@ class EndpointApi {
17
21
  get userId() {
18
22
  return this.apiClient.userId;
19
23
  }
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
- */
24
+
29
25
  async call(constant, data = {}) {
30
26
  return this.apiClient.safeCall(async () => {
31
27
  const response = await this.apiClient.callEndpoint(constant, data);
@@ -33,86 +29,67 @@ class EndpointApi {
33
29
  return response.data;
34
30
  });
35
31
  }
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
- */
32
+
46
33
  async callNoConnected(constant, data = {}) {
47
34
  if (this.isConnected) {
48
35
  throw new ApiAuthenticationError("Vous ne devez pas être connecté pour faire cette action.");
49
36
  }
50
37
  return this.call(constant, data);
51
38
  }
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
- */
39
+
62
40
  async callIsConnected(constant, data = {}) {
63
41
  if (!this.isConnected) {
64
42
  throw new ApiAuthenticationError("Vous devez être connecté pour effectuer cette action.");
65
43
  }
66
44
  return this.call(constant, data);
67
45
  }
46
+
68
47
 
69
48
  /**
70
49
  * Enregistrement d'un utilisateur : Permet d’enregistrer un nouvel utilisateur avec ses informations personnelles.
71
50
  * Constant : PERSON_REGISTER
72
- * @param {object} data - data
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)
51
+ * @param {import("./EndpointApi.types").PersonRegisterData} data - Données envoyées à l'API
81
52
  * @returns {Promise<Object>} - Les données de réponse.
82
53
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
83
54
  * @throws {Error} - En cas d'erreur inattendue.
84
55
  */
85
- async personRegister(data = {}) {
56
+ async personRegister(data) {
57
+ if (!data || typeof data !== "object") {
58
+ throw new TypeError("Le paramètre data doit être un objet.");
59
+ }
86
60
  return this.callNoConnected("PERSON_REGISTER", data);
87
61
  }
88
-
62
+
89
63
  /**
90
64
  * Authentification : Permet de se connecter en utilisant une adresse email et un mot de passe.
91
65
  * Constant : AUTHENTICATE_URL
92
- * @param {object} data - data
93
- * @param {string} data.email - Adresse email de l'utilisateur
94
- * @param {string} data.password - Mot de passe de l'utilisateur
66
+ * @param {import("./EndpointApi.types").AuthenticateUrlData} data - Données envoyées à l'API
95
67
  * @returns {Promise<Object>} - Les données de réponse.
96
68
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
97
69
  * @throws {Error} - En cas d'erreur inattendue.
98
70
  */
99
- async authenticateUrl(data = {}) {
71
+ async authenticateUrl(data) {
72
+ if (!data || typeof data !== "object") {
73
+ throw new TypeError("Le paramètre data doit être un objet.");
74
+ }
100
75
  return this.callNoConnected("AUTHENTICATE_URL", data);
101
76
  }
102
-
77
+
103
78
  /**
104
79
  * Rafraîchir un token : Permet de rafraîchir un token d'accès expiré en utilisant un token de rafraîchissement.
105
80
  * Constant : REFRESH_TOKEN_URL
106
- * @param {object} data - Permet de rafraîchir un token d'accès expiré en utilisant un token de rafraîchissement.
107
- * @param {string} data.refreshToken - Token de rafraîchissement
81
+ * @param {import("./EndpointApi.types").RefreshTokenUrlData} data - Données envoyées à l'API
108
82
  * @returns {Promise<Object>} - Les données de réponse.
109
83
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
110
84
  * @throws {Error} - En cas d'erreur inattendue.
111
85
  */
112
- async refreshTokenUrl(data = {}) {
86
+ async refreshTokenUrl(data) {
87
+ if (!data || typeof data !== "object") {
88
+ throw new TypeError("Le paramètre data doit être un objet.");
89
+ }
113
90
  return this.call("REFRESH_TOKEN_URL", data);
114
91
  }
115
-
92
+
116
93
  /**
117
94
  * Récupérer les informations utilisateur : Récupère les informations du profil utilisateur pour un token donné.
118
95
  * Constant : ME_INFO_URL
@@ -121,1493 +98,1061 @@ class EndpointApi {
121
98
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
122
99
  * @throws {Error} - En cas d'erreur inattendue.
123
100
  */
124
- async meInfoUrl(data = {}) {
125
- return this.callIsConnected("ME_INFO_URL", data);
101
+ async meInfoUrl() {
102
+ return this.callIsConnected("ME_INFO_URL");
126
103
  }
127
-
104
+
128
105
  /**
129
106
  * Récupération de mot de passe : Envoie un email pour récupérer le mot de passe.
130
107
  * Constant : PASSWORD_RECOVERY
131
- * @param {object} data - data
132
- * @param {string} data.email - Adresse email de l'utilisateur
133
- * @param {"password"} data.type - Type d'email envoyé (default: "password")
108
+ * @param {import("./EndpointApi.types").PasswordRecoveryData} data - Données envoyées à l'API
134
109
  * @returns {Promise<Object>} - Les données de réponse.
135
110
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
136
111
  * @throws {Error} - En cas d'erreur inattendue.
137
112
  */
138
- async passwordRecovery(data = {}) {
113
+ async passwordRecovery(data) {
114
+ if (!data || typeof data !== "object") {
115
+ throw new TypeError("Le paramètre data doit être un objet.");
116
+ }
139
117
  return this.callNoConnected("PASSWORD_RECOVERY", data);
140
118
  }
141
-
119
+
142
120
  /**
143
121
  * Échange de token avec un autre serveur : Permet de se connecter à un autre serveur Communecter en échangeant un token.
144
122
  * Constant : SERVER_EXCHANGE_TOKEN
145
- * @param {object} data - data
146
- * @param {string} data.serverUrl - URL du serveur distant
123
+ * @param {import("./EndpointApi.types").ServerExchangeTokenData} data - Données envoyées à l'API
147
124
  * @returns {Promise<Object>} - Les données de réponse.
148
125
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
149
126
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
150
127
  * @throws {Error} - En cas d'erreur inattendue.
151
128
  */
152
- async serverExchangeToken(data = {}) {
129
+ async serverExchangeToken(data) {
130
+ if (!data || typeof data !== "object") {
131
+ throw new TypeError("Le paramètre data doit être un objet.");
132
+ }
153
133
  return this.callIsConnected("SERVER_EXCHANGE_TOKEN", data);
154
134
  }
155
-
135
+
156
136
  /**
157
137
  * Changer le mot de passe : Permet de changer le mot de passe d'un utilisateur.
158
138
  * Constant : CHANGE_PASSWORD
159
- * @param {object} data - data
160
- * @param {"changePassword"} 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: "")
139
+ * @param {import("./EndpointApi.types").ChangePasswordData} data - Données envoyées à l'API
166
140
  * @returns {Promise<Object>} - Les données de réponse.
167
141
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
168
142
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
169
143
  * @throws {Error} - En cas d'erreur inattendue.
170
144
  */
171
- async changePassword(data = {}) {
145
+ async changePassword(data) {
146
+ if (!data || typeof data !== "object") {
147
+ throw new TypeError("Le paramètre data doit être un objet.");
148
+ }
172
149
  return this.callIsConnected("CHANGE_PASSWORD", data);
173
150
  }
174
-
151
+
175
152
  /**
176
153
  * Supprimer un compte : Permet de supprimer un compte utilisateur.
177
154
  * Constant : DELETE_ACCOUNT
178
- * @param {object} data - data
179
- * @param {string} data.reason - Raison de la suppression (default: "")
180
- * @param {object} data.pathParams - data.pathParams
181
- * @param {string} data.pathParams.id - Identifiant de l'utilisateur à supprimer (default: "@userId")
155
+ * @param {import("./EndpointApi.types").DeleteAccountData} data - Données envoyées à l'API
182
156
  * @returns {Promise<Object>} - Les données de réponse.
183
157
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
184
158
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
185
159
  * @throws {Error} - En cas d'erreur inattendue.
186
160
  */
187
- async deleteAccount(data = {}) {
161
+ async deleteAccount(data) {
162
+ if (!data || typeof data !== "object") {
163
+ throw new TypeError("Le paramètre data doit être un objet.");
164
+ }
188
165
  return this.callIsConnected("DELETE_ACCOUNT", data);
189
166
  }
190
-
167
+
191
168
  /**
192
169
  * Mettre à jour les paramètres d'un élément : Mise à jour des paramètres spécifiques d'un élément.
193
170
  * Constant : UPDATE_SETTINGS
194
- * @param {object} data - data
195
- * @param {string} data.type - data.type
196
- * @param {any} data.value - data.value
197
- * @param {"citoyens" | "projects" | "organizations"} data.typeEntity - Type d'élément (citoyens, projects, organizations) (default: "citoyens")
198
- * @param {string} data.idEntity - Id de l'élément
171
+ * @param {import("./EndpointApi.types").UpdateSettingsData} data - Données envoyées à l'API
199
172
  * @returns {Promise<Object>} - Les données de réponse.
200
173
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
201
174
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
202
175
  * @throws {Error} - En cas d'erreur inattendue.
203
176
  */
204
- async updateSettings(data = {}) {
177
+ async updateSettings(data) {
178
+ if (!data || typeof data !== "object") {
179
+ throw new TypeError("Le paramètre data doit être un objet.");
180
+ }
205
181
  return this.callIsConnected("UPDATE_SETTINGS", data);
206
182
  }
207
-
183
+
208
184
  /**
209
185
  * Mettre à jour la description d'un élément : Permet de mettre à jour la description courte et complète d'un élément.
210
186
  * Constant : UPDATE_BLOCK_DESCRIPTION
211
- * @param {object} data - data
212
- * @param {"descriptions"} data.block - Nom du bloc à mettre à jour (doit être 'descriptions') (default: "descriptions")
213
- * @param {"citoyens" | "projects" | "organizations" | "poi"} data.typeElement - Type d'élément (citoyens, projects, organizations, poi) (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
187
+ * @param {import("./EndpointApi.types").UpdateBlockDescriptionData} data - Données envoyées à l'API
219
188
  * @returns {Promise<Object>} - Les données de réponse.
220
189
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
221
190
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
222
191
  * @throws {Error} - En cas d'erreur inattendue.
223
192
  */
224
- async updateBlockDescription(data = {}) {
193
+ async updateBlockDescription(data) {
194
+ if (!data || typeof data !== "object") {
195
+ throw new TypeError("Le paramètre data doit être un objet.");
196
+ }
225
197
  return this.callIsConnected("UPDATE_BLOCK_DESCRIPTION", data);
226
198
  }
227
-
199
+
228
200
  /**
229
201
  * 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
202
  * Constant : UPDATE_BLOCK_INFO
231
- * @param {object} data - data
232
- * @param {"info"} data.block - Nom du bloc à mettre à jour (doit être 'info') (default: "info")
233
- * @param {"citoyens" | "projects" | "organizations" | "poi"} data.typeElement - Type d'élément (citoyens, projects, organizations, poi) (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: "")
203
+ * @param {import("./EndpointApi.types").UpdateBlockInfoData} data - Données envoyées à l'API
236
204
  * @returns {Promise<Object>} - Les données de réponse.
237
205
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
238
206
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
239
207
  * @throws {Error} - En cas d'erreur inattendue.
240
208
  */
241
- async updateBlockInfo(data = {}) {
209
+ async updateBlockInfo(data) {
210
+ if (!data || typeof data !== "object") {
211
+ throw new TypeError("Le paramètre data doit être un objet.");
212
+ }
242
213
  return this.callIsConnected("UPDATE_BLOCK_INFO", data);
243
214
  }
244
-
215
+
245
216
  /**
246
217
  * 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
218
  * Constant : UPDATE_BLOCK_SOCIAL
248
- * @param {object} data - data
249
- * @param {"network"} data.block - Nom du bloc à mettre à jour (doit être 'network') (default: "network")
250
- * @param {"citoyens" | "projects" | "organizations"} 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
219
+ * @param {import("./EndpointApi.types").UpdateBlockSocialData} data - Données envoyées à l'API
262
220
  * @returns {Promise<Object>} - Les données de réponse.
263
221
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
264
222
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
265
223
  * @throws {Error} - En cas d'erreur inattendue.
266
224
  */
267
- async updateBlockSocial(data = {}) {
225
+ async updateBlockSocial(data) {
226
+ if (!data || typeof data !== "object") {
227
+ throw new TypeError("Le paramètre data doit être un objet.");
228
+ }
268
229
  return this.callIsConnected("UPDATE_BLOCK_SOCIAL", data);
269
230
  }
270
-
231
+
271
232
  /**
272
233
  * 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
234
  * Constant : UPDATE_BLOCK_LOCALITY
274
- * @param {object} data - data
275
- * @param {"localities"} data.block - Nom du bloc à mettre à jour (doit être 'localities') (default: "localities")
276
- * @param {"citoyens" | "projects" | "organizations" | "poi"} 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 {"GeoCoordinates"} 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 {"Point"} data.geoPosition.type - Type GeoJSON (doit être 'Point')
285
- * @param {Array<number>} data.geoPosition.coordinates - Tableau contenant [longitude, latitude]
286
- * @param {true} data.geoPosition.float - Indicateur pour forcer la conversion en float côté serveur (default: true)
287
- * @param {object} data.address - data.address
288
- * @param {"PostalAddress"} 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
235
+ * @param {import("./EndpointApi.types").UpdateBlockLocalityData} data - Données envoyées à l'API
301
236
  * @returns {Promise<Object>} - Les données de réponse.
302
237
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
303
238
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
304
239
  * @throws {Error} - En cas d'erreur inattendue.
305
240
  */
306
- async updateBlockLocality(data = {}) {
241
+ async updateBlockLocality(data) {
242
+ if (!data || typeof data !== "object") {
243
+ throw new TypeError("Le paramètre data doit être un objet.");
244
+ }
307
245
  return this.callIsConnected("UPDATE_BLOCK_LOCALITY", data);
308
246
  }
309
-
247
+
310
248
  /**
311
249
  * Mettre à jour le slug d'un élément : Permet de mettre à jour le slug pour une URL simplifiée.
312
250
  * Constant : UPDATE_BLOCK_SLUG
313
- * @param {object} data - data
314
- * @param {"info"} data.block - Nom du bloc à mettre à jour (doit être 'info') (default: "info")
315
- * @param {"citoyens" | "projects" | "organizations" | "poi"} data.typeElement - Type d'élément (citoyens, projects, organizations, poi) (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
251
+ * @param {import("./EndpointApi.types").UpdateBlockSlugData} data - Données envoyées à l'API
319
252
  * @returns {Promise<Object>} - Les données de réponse.
320
253
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
321
254
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
322
255
  * @throws {Error} - En cas d'erreur inattendue.
323
256
  */
324
- async updateBlockSlug(data = {}) {
257
+ async updateBlockSlug(data) {
258
+ if (!data || typeof data !== "object") {
259
+ throw new TypeError("Le paramètre data doit être un objet.");
260
+ }
325
261
  return this.callIsConnected("UPDATE_BLOCK_SLUG", data);
326
262
  }
327
-
263
+
328
264
  /**
329
265
  * Vérifier l'état d'une URL : Vérifie si une URL (slug) est valide ou disponible.
330
266
  * Constant : CHECK
331
- * @param {object} data - data
332
- * @param {"info"} data.block - Nom du bloc (default: "info")
333
- * @param {string} data.id - ID de l'élément
334
- * @param {"citoyens" | "projects" | "organizations"} data.type - Type d'élément (default: "citoyens")
335
- * @param {string} data.slug - Slug à vérifier
267
+ * @param {import("./EndpointApi.types").CheckData} data - Données envoyées à l'API
336
268
  * @returns {Promise<Object>} - Les données de réponse.
337
269
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
338
270
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
339
271
  * @throws {Error} - En cas d'erreur inattendue.
340
272
  */
341
- async check(data = {}) {
273
+ async check(data) {
274
+ if (!data || typeof data !== "object") {
275
+ throw new TypeError("Le paramètre data doit être un objet.");
276
+ }
342
277
  return this.callIsConnected("CHECK", data);
343
278
  }
344
-
279
+
345
280
  /**
346
281
  * Mettre à jour l'image de profil : Permet de mettre à jour l'image de profil d'un utilisateur ou d'une entité.
347
282
  * Constant : PROFIL_IMAGE
348
- * @param {object} data - data
349
- * @param {any} data.profil_avatar - Fichier image de profil au format binaire
350
- * @param {object} data.pathParams - data.pathParams
351
- * @param {"citoyens" | "projects" | "organizations" | "events" | "poi"} data.pathParams.folder - Type d'entité (default: "citoyens")
352
- * @param {string} data.pathParams.ownerId - ID de l'utilisateur ou de l'entité
283
+ * @param {import("./EndpointApi.types").ProfilImageData} data - Données envoyées à l'API
353
284
  * @returns {Promise<Object>} - Les données de réponse.
354
285
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
355
286
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
356
287
  * @throws {Error} - En cas d'erreur inattendue.
357
288
  */
358
- async profilImage(data = {}) {
289
+ async profilImage(data) {
290
+ if (!data || typeof data !== "object") {
291
+ throw new TypeError("Le paramètre data doit être un objet.");
292
+ }
359
293
  return this.callIsConnected("PROFIL_IMAGE", data);
360
294
  }
361
-
295
+
362
296
  /**
363
297
  * 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
298
  * Constant : GET_ELEMENTS_ABOUT
365
- * @param {object} data - data
366
- * @param {"ficheInfoElement"} data.tpl - Template utilisé (ex: ficheInfoElement) (default: "ficheInfoElement")
367
- * @param {object} data.pathParams - data.pathParams
368
- * @param {"citoyens" | "projects" | "organizations" | "events" | "poi" | "badges"} data.pathParams.type - Type d'entité (default: "citoyens")
369
- * @param {string} data.pathParams.id - ID de l'utilisateur ou de l'entité
299
+ * @param {import("./EndpointApi.types").GetElementsAboutData} data - Données envoyées à l'API
370
300
  * @returns {Promise<Object>} - Les données de réponse.
371
301
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
372
302
  * @throws {Error} - En cas d'erreur inattendue.
373
303
  */
374
- async getElementsAbout(data = {}) {
304
+ async getElementsAbout(data) {
305
+ if (!data || typeof data !== "object") {
306
+ throw new TypeError("Le paramètre data doit être un objet.");
307
+ }
375
308
  return this.call("GET_ELEMENTS_ABOUT", data);
376
309
  }
377
-
310
+
378
311
  /**
379
312
  * Gérer des connexions multiples : Permet d’inviter ou de connecter plusieurs utilisateurs en même temps à une entité.
380
313
  * Constant : MULTICONNECT
381
- * @param {object} data - data
382
- * @param {string} data.parentId - ID de l'entité parente
383
- * @param {"citoyens" | "projects" | "organizations"} data.parentType - Type de l'entité parente (default: "citoyens")
384
- * @param {object} data.listInvite - Liste des citoyens invités
385
- * @param {Object.<string, object | any>} data.listInvite - Clés matching "^(citoyens|projects|organizations)$"
314
+ * @param {import("./EndpointApi.types").MulticonnectData} data - Données envoyées à l'API
386
315
  * @returns {Promise<Object>} - Les données de réponse.
387
316
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
388
317
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
389
318
  * @throws {Error} - En cas d'erreur inattendue.
390
319
  */
391
- async multiconnect(data = {}) {
320
+ async multiconnect(data) {
321
+ if (!data || typeof data !== "object") {
322
+ throw new TypeError("Le paramètre data doit être un objet.");
323
+ }
392
324
  return this.callIsConnected("MULTICONNECT", data);
393
325
  }
394
-
326
+
395
327
  /**
396
328
  * Récupérer les actualités : Récupère la liste d’actualités selon plusieurs critères.
397
329
  * Constant : GET_NEWS
398
- * @param {object} data - data
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 - data.pathParams
404
- * @param {boolean} data.pathParams.isLive - Indique si l'actualité est en direct (default: true)
405
- * @param {"citoyens" | "projects" | "organizations"} 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)
330
+ * @param {import("./EndpointApi.types").GetNewsData} data - Données envoyées à l'API
407
331
  * @returns {Promise<Object>} - Les données de réponse.
408
332
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
409
333
  * @throws {Error} - En cas d'erreur inattendue.
410
334
  */
411
- async getNews(data = {}) {
335
+ async getNews(data) {
336
+ if (!data || typeof data !== "object") {
337
+ throw new TypeError("Le paramètre data doit être un objet.");
338
+ }
412
339
  return this.call("GET_NEWS", data);
413
340
  }
414
-
341
+
415
342
  /**
416
343
  * Récupérer des actualités par IDs : Récupère des actualités à partir d’une liste d’identifiants.
417
344
  * Constant : GET_NEWS_BY_ID
418
- * @param {object} data - data
419
- * @param {Array<string>} data.ids - Liste des IDs d’actualités à récupérer
345
+ * @param {import("./EndpointApi.types").GetNewsByIdData} data - Données envoyées à l'API
420
346
  * @returns {Promise<Object>} - Les données de réponse.
421
347
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
422
348
  * @throws {Error} - En cas d'erreur inattendue.
423
349
  */
424
- async getNewsById(data = {}) {
350
+ async getNewsById(data) {
351
+ if (!data || typeof data !== "object") {
352
+ throw new TypeError("Le paramètre data doit être un objet.");
353
+ }
425
354
  return this.call("GET_NEWS_BY_ID", data);
426
355
  }
427
-
356
+
428
357
  /**
429
358
  * Ajouter une actualité : Ajoute une nouvelle actualité.
430
359
  * Constant : ADD_NEWS
431
- * @param {object} data - data
432
- * @param {string} data.text - Contenu de l’actualité
433
- * @param {"public" | "private" | "restricted"} 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 {"citoyens" | "projects" | "organizations"} data.parentType - Type de l'entité parente (default: "citoyens")
437
- * @param {"news"} data.type - Type de l'objet, toujours 'news'. (default: "news")
438
- * @param {true} 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 {Array<object>} data.mentions - Optionnel. Liste des personnes mentionnées.
360
+ * @param {import("./EndpointApi.types").AddNewsData} data - Données envoyées à l'API
447
361
  * @returns {Promise<Object>} - Les données de réponse.
448
362
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
449
363
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
450
364
  * @throws {Error} - En cas d'erreur inattendue.
451
365
  */
452
- async addNews(data = {}) {
366
+ async addNews(data) {
367
+ if (!data || typeof data !== "object") {
368
+ throw new TypeError("Le paramètre data doit être un objet.");
369
+ }
453
370
  return this.callIsConnected("ADD_NEWS", data);
454
371
  }
455
-
372
+
456
373
  /**
457
374
  * Ajouter une image à une actualité : Ajoute une images à une actualité.
458
375
  * Constant : ADD_IMAGE_NEWS
459
- * @param {object} data - data
460
- * @param {any} data.newsImage - Fichier image à télécharger
461
- * @param {object} data.pathParams - data.pathParams
462
- * @param {"citoyens" | "projects" | "organizations"} data.pathParams.folder - Type de l'entité parente (ex: 'citoyens', 'projects', 'organizations') (default: "citoyens")
463
- * @param {string} data.pathParams.ownerId - ID de l'utilisateur ou de l'entité parente
376
+ * @param {import("./EndpointApi.types").AddImageNewsData} data - Données envoyées à l'API
464
377
  * @returns {Promise<Object>} - Les données de réponse.
465
378
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
466
379
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
467
380
  * @throws {Error} - En cas d'erreur inattendue.
468
381
  */
469
- async addImageNews(data = {}) {
382
+ async addImageNews(data) {
383
+ if (!data || typeof data !== "object") {
384
+ throw new TypeError("Le paramètre data doit être un objet.");
385
+ }
470
386
  return this.callIsConnected("ADD_IMAGE_NEWS", data);
471
387
  }
472
-
388
+
473
389
  /**
474
390
  * Ajouter un fichier à une actualité : Ajoute un fichier à une actualité.
475
391
  * Constant : ADD_FILE_NEWS
476
- * @param {object} data - data
477
- * @param {any} data.newsFile - Fichier image à télécharger
478
- * @param {object} data.pathParams - data.pathParams
479
- * @param {"citoyens" | "projects" | "organizations"} data.pathParams.folder - Type de l'entité parente (ex: 'citoyens', 'projects', 'organizations') (default: "citoyens")
480
- * @param {string} data.pathParams.ownerId - ID de l'utilisateur ou de l'entité parente
392
+ * @param {import("./EndpointApi.types").AddFileNewsData} data - Données envoyées à l'API
481
393
  * @returns {Promise<Object>} - Les données de réponse.
482
394
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
483
395
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
484
396
  * @throws {Error} - En cas d'erreur inattendue.
485
397
  */
486
- async addFileNews(data = {}) {
398
+ async addFileNews(data) {
399
+ if (!data || typeof data !== "object") {
400
+ throw new TypeError("Le paramètre data doit être un objet.");
401
+ }
487
402
  return this.callIsConnected("ADD_FILE_NEWS", data);
488
403
  }
489
-
404
+
490
405
  /**
491
406
  * Supprimer une actualité : Supprime une actualité existante.
492
407
  * Constant : DELETE_NEWS
493
- * @param {object} data - data
494
- * @param {boolean} data.isLive - data.isLive (default: false)
495
- * @param {object} data.pathParams - data.pathParams
496
- * @param {string} data.pathParams.id - ID de l'actualité à supprimer
408
+ * @param {import("./EndpointApi.types").DeleteNewsData} data - Données envoyées à l'API
497
409
  * @returns {Promise<Object>} - Les données de réponse.
498
410
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
499
411
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
500
412
  * @throws {Error} - En cas d'erreur inattendue.
501
413
  */
502
- async deleteNews(data = {}) {
414
+ async deleteNews(data) {
415
+ if (!data || typeof data !== "object") {
416
+ throw new TypeError("Le paramètre data doit être un objet.");
417
+ }
503
418
  return this.callIsConnected("DELETE_NEWS", data);
504
419
  }
505
-
420
+
506
421
  /**
507
422
  * Mettre à jour une actualité : Met à jour le contenu d’une actualité existante.
508
423
  * Constant : UPDATE_NEWS
509
- * @param {object} data - data
510
- * @param {string} data.idNews - ID de l'actualité à mettre à jour
511
- * @param {string} data.text - Contenu de l’actualité
512
- * @param {"public" | "private" | "restricted"} data.scope - Portée de l'actualité (ex: public, privé...) (default: "public")
513
- * @param {boolean} data.markdownActive - Markdown activé (true/false) (default: true)
514
- * @param {string} data.parentId - ID de l'entité parente
515
- * @param {"citoyens" | "projects" | "organizations"} data.parentType - Type de l'entité parente (default: "citoyens")
516
- * @param {"news"} data.type - Type de l'objet, toujours 'news'. (default: "news")
517
- * @param {array | string} data.tags - Tags : "" pour effacer tous les tags, ou tableau de mots-clés.
518
- * @param {object} data.mediaImg - Optionnel. Informations sur les images associées à la news.
519
- * @param {number} data.mediaImg.countImages - Nombre d'images.
520
- * @param {Array<string>} data.mediaImg.images - Liste des identifiants ou chemins d'images.
521
- * @param {object} data.mediaFile - Optionnel. Informations sur les fichiers associés à la news.
522
- * @param {number} data.mediaFile.countFiles - Nombre de fichiers.
523
- * @param {Array<string>} data.mediaFile.files - Liste des identifiants ou chemins de fichiers.
524
- * @param {Array<object>} data.mentions - Optionnel. Liste des personnes mentionnées.
424
+ * @param {import("./EndpointApi.types").UpdateNewsData} data - Données envoyées à l'API
525
425
  * @returns {Promise<Object>} - Les données de réponse.
526
426
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
527
427
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
528
428
  * @throws {Error} - En cas d'erreur inattendue.
529
429
  */
530
- async updateNews(data = {}) {
430
+ async updateNews(data) {
431
+ if (!data || typeof data !== "object") {
432
+ throw new TypeError("Le paramètre data doit être un objet.");
433
+ }
531
434
  return this.callIsConnected("UPDATE_NEWS", data);
532
435
  }
533
-
436
+
534
437
  /**
535
438
  * Partager une actualité : Partage une actualité avec une entité ou un utilisateur.
536
439
  * Constant : SHARE_NEWS
537
- * @param {object} data - data
538
- * @param {string} data.parentId - ID de l'actualité à partager
539
- * @param {"news"} data.parentType - Type de l'objet, toujours 'news'. (default: "news")
540
- * @param {string} data.childId - ID de l'entité partageante
541
- * @param {"citoyens" | "projects" | "organizations"} data.childType - Type de l'entité partageante (default: "citoyens")
542
- * @param {"share"} data.connectType - Type de connexion, toujours 'share'. (default: "share")
543
- * @param {string} data.comment - Commentaire de partage
440
+ * @param {import("./EndpointApi.types").ShareNewsData} data - Données envoyées à l'API
544
441
  * @returns {Promise<Object>} - Les données de réponse.
545
442
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
546
443
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
547
444
  * @throws {Error} - En cas d'erreur inattendue.
548
445
  */
549
- async shareNews(data = {}) {
446
+ async shareNews(data) {
447
+ if (!data || typeof data !== "object") {
448
+ throw new TypeError("Le paramètre data doit être un objet.");
449
+ }
550
450
  return this.callIsConnected("SHARE_NEWS", data);
551
451
  }
552
-
452
+
553
453
  /**
554
454
  * Récupérer les commentaires : Récupère les commentaires d’un élément.
555
455
  * Constant : GET_COMMENTS
556
- * @param {object} data.pathParams - data.pathParams
557
- * @param {"news"} data.pathParams.type - Type de l'élément (default: "news")
558
- * @param {string} data.pathParams.id - ID de l'élément dont on veut récupérer les commentaires
456
+ * @param {import("./EndpointApi.types").GetCommentsData} data - Données envoyées à l'API
559
457
  * @returns {Promise<Object>} - Les données de réponse.
560
458
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
561
459
  * @throws {Error} - En cas d'erreur inattendue.
562
460
  */
563
- async getComments(data = {}) {
461
+ async getComments(data) {
462
+ if (!data || typeof data !== "object") {
463
+ throw new TypeError("Le paramètre data doit être un objet.");
464
+ }
564
465
  return this.call("GET_COMMENTS", data);
565
466
  }
566
-
467
+
567
468
  /**
568
469
  * Ajouter un commentaire : Ajoute un commentaire à une actualité ou autre contexte.
569
470
  * Constant : ADD_COMMENTS
570
- * @param {object} data - data
571
- * @param {string} data.parentCommentId - ID du commentaire parent (optionnel)
572
- * @param {string} data.text - Contenu du commentaire
573
- * @param {string} data.contextId - ID de l'élément auquel le commentaire est associé
574
- * @param {"news"} data.contextType - Type de l'élément auquel le commentaire est associé (default: "news")
575
- * @param {string} data.argval - Valeur de l'argument (optionnel) (default: "")
576
- * @param {string} data.path - Chemin de l'élément (optionnel) (default: "")
577
- * @param {Array<object>} data.mentions - data.mentions
471
+ * @param {import("./EndpointApi.types").AddCommentsData} data - Données envoyées à l'API
578
472
  * @returns {Promise<Object>} - Les données de réponse.
579
473
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
580
474
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
581
475
  * @throws {Error} - En cas d'erreur inattendue.
582
476
  */
583
- async addComments(data = {}) {
477
+ async addComments(data) {
478
+ if (!data || typeof data !== "object") {
479
+ throw new TypeError("Le paramètre data doit être un objet.");
480
+ }
584
481
  return this.callIsConnected("ADD_COMMENTS", data);
585
482
  }
586
-
483
+
587
484
  /**
588
485
  * Supprimer un commentaire : Supprime un commentaire existant.
589
486
  * Constant : DELETE_COMMENTS
590
- * @param {object} data.pathParams - data.pathParams
591
- * @param {string} data.pathParams.id - ID du commentaire à supprimer
487
+ * @param {import("./EndpointApi.types").DeleteCommentsData} data - Données envoyées à l'API
592
488
  * @returns {Promise<Object>} - Les données de réponse.
593
489
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
594
490
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
595
491
  * @throws {Error} - En cas d'erreur inattendue.
596
492
  */
597
- async deleteComments(data = {}) {
493
+ async deleteComments(data) {
494
+ if (!data || typeof data !== "object") {
495
+ throw new TypeError("Le paramètre data doit être un objet.");
496
+ }
598
497
  return this.callIsConnected("DELETE_COMMENTS", data);
599
498
  }
600
-
499
+
601
500
  /**
602
501
  * Mettre à jour un commentaire : Met à jour le contenu d’un commentaire.
603
502
  * Constant : UPDATE_COMMENTS
604
- * @param {object} data - data
605
- * @param {string} data.id - ID du commentaire à mettre à jour
606
- * @param {object} data.params - data.params
607
- * @param {string} data.params.text - Nouveau texte du commentaire
608
- * @param {Array<object>} data.params.mentions - data.params.mentions
503
+ * @param {import("./EndpointApi.types").UpdateCommentsData} data - Données envoyées à l'API
609
504
  * @returns {Promise<Object>} - Les données de réponse.
610
505
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
611
506
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
612
507
  * @throws {Error} - En cas d'erreur inattendue.
613
508
  */
614
- async updateComments(data = {}) {
509
+ async updateComments(data) {
510
+ if (!data || typeof data !== "object") {
511
+ throw new TypeError("Le paramètre data doit être un objet.");
512
+ }
615
513
  return this.callIsConnected("UPDATE_COMMENTS", data);
616
514
  }
617
-
515
+
618
516
  /**
619
517
  * Rechercher des tags : Recherche des tags correspondant à un mot-clé.
620
518
  * Constant : SEARCH_TAGS
621
- * @param {object} data.pathParams - data.pathParams
622
- * @param {string} data.pathParams.q - Mot-clé de recherche
519
+ * @param {import("./EndpointApi.types").SearchTagsData} data - Données envoyées à l'API
623
520
  * @returns {Promise<Object>} - Les données de réponse.
624
521
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
625
522
  * @throws {Error} - En cas d'erreur inattendue.
626
523
  */
627
- async searchTags(data = {}) {
524
+ async searchTags(data) {
525
+ if (!data || typeof data !== "object") {
526
+ throw new TypeError("Le paramètre data doit être un objet.");
527
+ }
628
528
  return this.call("SEARCH_TAGS", data);
629
529
  }
630
-
530
+
631
531
  /**
632
532
  * Afficher les votes d'une actualité : Récupère la liste des votes (like, love, etc.) sur une actualité.
633
533
  * Constant : SHOW_VOTE
634
- * @param {object} data.pathParams - data.pathParams
635
- * @param {"news"} data.pathParams.type - Type de l'élément (default: "news")
636
- * @param {string} data.pathParams.id - ID de l'élément dont on veut récupérer les votes
534
+ * @param {import("./EndpointApi.types").ShowVoteData} data - Données envoyées à l'API
637
535
  * @returns {Promise<Object>} - Les données de réponse.
638
536
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
639
537
  * @throws {Error} - En cas d'erreur inattendue.
640
538
  */
641
- async showVote(data = {}) {
539
+ async showVote(data) {
540
+ if (!data || typeof data !== "object") {
541
+ throw new TypeError("Le paramètre data doit être un objet.");
542
+ }
642
543
  return this.call("SHOW_VOTE", data);
643
544
  }
644
-
545
+
645
546
  /**
646
547
  * Recherche globale avec autocomplétion : Effectue une recherche globale avec possibilité d’autocomplétion.
647
548
  * Constant : GLOBAL_AUTOCOMPLETE
648
- * @param {object} data - data
649
- * @param {string} data.name - Nom ou mot-clé de la recherche
650
- * @param {object} data.locality - Liste des localités ciblées avec leur identifiant et leur type (city ou level1)
651
- * @param {Object.<string, { id: string, type: "cities" | "level1" } | any>} data.locality - Clés matching "^[^\s]+$"
652
- * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche
653
- * @param {Array<string>} data.searchTags - Balises (tags) à utiliser pour filtrer la recherche
654
- * @param {object} data.ranges - Configuration des plages de résultats pour chaque type de recherche
655
- * @param {Object.<string, { indexMin: number, indexMax: number } | any>} data.ranges - Clés matching "^[^\s]+$"
656
- * @param {["NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects","citoyens","poi"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects","citoyens","poi"])
657
- * @param {0} data.indexMin - Index de départ global pour la pagination (toujours 0) (default: 0)
658
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination)
659
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
660
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
661
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
662
- * @param {""} data.filters - Filtres additionnels appliqués à la recherche (actuellement vide) (default: "")
663
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
664
- * @returns {Promise<Object>} - Les données de réponse.
665
- * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
666
- * @throws {Error} - En cas d'erreur inattendue.
667
- */
668
- async globalAutocomplete(data = {}) {
549
+ * @param {import("./EndpointApi.types").GlobalAutocompleteData} data - Données envoyées à l'API
550
+ * @returns {Promise<Object>} - Les données de réponse.
551
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
552
+ * @throws {Error} - En cas d'erreur inattendue.
553
+ */
554
+ async globalAutocomplete(data) {
555
+ if (!data || typeof data !== "object") {
556
+ throw new TypeError("Le paramètre data doit être un objet.");
557
+ }
669
558
  return this.call("GLOBAL_AUTOCOMPLETE", data);
670
559
  }
671
-
560
+
672
561
  /**
673
562
  * Recherche de villes avec autocomplétion : Recherche des villes en fonction d’un nom, autocomplétion rapide.
674
563
  * Constant : CITY_AUTOCOMPLETE
675
- * @param {object} data - data
676
- * @param {string} data.name - Nom de la ville
677
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
678
- * @param {["cities"]} data.searchType - data.searchType (default: ["cities"])
679
- * @param {"ALL"} data.searchBy - Mode de recherche (ex: ALL) (default: "ALL")
680
- * @param {number} data.indexMin - Index minimum
681
- * @param {number} data.indexMax - Index maximum
564
+ * @param {import("./EndpointApi.types").CityAutocompleteData} data - Données envoyées à l'API
682
565
  * @returns {Promise<Object>} - Les données de réponse.
683
566
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
684
567
  * @throws {Error} - En cas d'erreur inattendue.
685
568
  */
686
- async cityAutocomplete(data = {}) {
569
+ async cityAutocomplete(data) {
570
+ if (!data || typeof data !== "object") {
571
+ throw new TypeError("Le paramètre data doit être un objet.");
572
+ }
687
573
  return this.call("CITY_AUTOCOMPLETE", data);
688
574
  }
689
-
575
+
690
576
  /**
691
577
  * Suggestions d'entrée : Fournit des suggestions basées sur le nom recherché, etc.
692
578
  * Constant : SUGGESTION_INPUT
693
- * @param {object} data - data
694
- * @param {string} data.name - Nom ou terme recherché
695
- * @param {Array<string>} data.searchType - Types d'entités à inclure dans la recherche
696
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
697
- * @param {number} data.indexMax - Index maximum pour la pagination (default: 20)
579
+ * @param {import("./EndpointApi.types").SuggestionInputData} data - Données envoyées à l'API
698
580
  * @returns {Promise<Object>} - Les données de réponse.
699
581
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
700
582
  * @throws {Error} - En cas d'erreur inattendue.
701
583
  */
702
- async suggestionInput(data = {}) {
584
+ async suggestionInput(data) {
585
+ if (!data || typeof data !== "object") {
586
+ throw new TypeError("Le paramètre data doit être un objet.");
587
+ }
703
588
  return this.call("SUGGESTION_INPUT", data);
704
589
  }
705
-
590
+
706
591
  /**
707
592
  * Récupérer les projets non administrables : Récupère les projets accessibles sans droits d'administration.
708
593
  * Constant : GET_PROJECTS_NO_ADMIN
709
- * @param {object} data - data
710
- * @param {string} data.name - Nom ou terme recherché
711
- * @param {["projects"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["projects"])
712
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
713
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
714
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
715
- * @param {["projects"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["projects"])
716
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
717
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
718
- * @param {object} data.filters - data.filters (default: {"$or":{"links.contributors.@userId":{"$exists":true},"parent.@userId":{"$exists":true}},"links.contributors.@userId":{"$exists":true}})
719
- * @param {object} data.filters.$or - data.filters.$or
720
- * @param {Object.<string, { $exists: true } | any>} data.filters.$or - Clés matching "^links\.contributors\.(?:[a-f0-9]{24}|@\w+)$", "^parent\.(?:[a-f0-9]{24}|@\w+)$"
721
- * @param {Object.<string, { $exists: true } | any>} data.filters - Clés matching "^links\.contributors\.(?:[a-f0-9]{24}|@\w+)$"
722
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
723
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
724
- * @returns {Promise<Object>} - Les données de réponse.
725
- * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
726
- * @throws {Error} - En cas d'erreur inattendue.
727
- */
728
- async getProjectsNoAdmin(data = {}) {
594
+ * @param {import("./EndpointApi.types").GetProjectsNoAdminData} data - Données envoyées à l'API
595
+ * @returns {Promise<Object>} - Les données de réponse.
596
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
597
+ * @throws {Error} - En cas d'erreur inattendue.
598
+ */
599
+ async getProjectsNoAdmin(data) {
600
+ if (!data || typeof data !== "object") {
601
+ throw new TypeError("Le paramètre data doit être un objet.");
602
+ }
729
603
  return this.call("GET_PROJECTS_NO_ADMIN", data);
730
604
  }
731
-
605
+
732
606
  /**
733
607
  * Récupérer les projets administrables : Récupère les projets pour lesquels l'utilisateur a des droits d'administration.
734
608
  * Constant : GET_PROJECTS_ADMIN
735
- * @param {object} data - data
736
- * @param {string} data.name - Nom ou terme recherché
737
- * @param {["projects"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["projects"])
738
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
739
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
740
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
741
- * @param {["projects"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["projects"])
742
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
743
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
744
- * @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}})
745
- * @param {object} data.filters.$or - data.filters.$or
746
- * @param {Object.<string, { $exists: true } | any>} data.filters.$or - Clés matching "^links\.contributors\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$", "^parent\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$"
747
- * @param {Object.<string, { $exists: true } | any>} data.filters - Clés matching "^links\.contributors\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$"
748
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
749
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
750
- * @param {object} data.pathParams - data.pathParams
751
- * @param {"citoyens" | "projects" | "organizations"} data.pathParams.type - Type d'entité (default: "citoyens")
752
- * @param {string} data.pathParams.id - ID de l'utilisateur ou de l'entité
609
+ * @param {import("./EndpointApi.types").GetProjectsAdminData} data - Données envoyées à l'API
753
610
  * @returns {Promise<Object>} - Les données de réponse.
754
611
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
755
612
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
756
613
  * @throws {Error} - En cas d'erreur inattendue.
757
614
  */
758
- async getProjectsAdmin(data = {}) {
615
+ async getProjectsAdmin(data) {
616
+ if (!data || typeof data !== "object") {
617
+ throw new TypeError("Le paramètre data doit être un objet.");
618
+ }
759
619
  return this.callIsConnected("GET_PROJECTS_ADMIN", data);
760
620
  }
761
-
621
+
762
622
  /**
763
623
  * Récupérer les POIs non administrables : Récupère la liste des POIs accessibles sans droits d'administration.
764
624
  * Constant : GET_POIS_NO_ADMIN
765
- * @param {object} data - data
766
- * @param {string} data.name - Nom ou terme recherché
767
- * @param {["poi"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["poi"])
768
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
769
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
770
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
771
- * @param {["poi"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["poi"])
772
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
773
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
774
- * @param {object} data.filters - data.filters (default: {"parent.@userId":{"$exists":true}})
775
- * @param {Object.<string, { $exists: true } | any>} data.filters - Clés matching "^parent\.(?:[a-f0-9]{24}|@\w+)$"
776
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
777
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
625
+ * @param {import("./EndpointApi.types").GetPoisNoAdminData} data - Données envoyées à l'API
778
626
  * @returns {Promise<Object>} - Les données de réponse.
779
627
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
780
628
  * @throws {Error} - En cas d'erreur inattendue.
781
629
  */
782
- async getPoisNoAdmin(data = {}) {
630
+ async getPoisNoAdmin(data) {
631
+ if (!data || typeof data !== "object") {
632
+ throw new TypeError("Le paramètre data doit être un objet.");
633
+ }
783
634
  return this.call("GET_POIS_NO_ADMIN", data);
784
635
  }
785
-
636
+
786
637
  /**
787
638
  * Récupérer les POIs administrables : Récupère la liste des POIs administrables par l’utilisateur.
788
639
  * Constant : GET_POIS_ADMIN
789
- * @param {object} data - data
790
- * @param {string} data.name - Nom ou terme recherché
791
- * @param {["poi"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["poi"])
792
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
793
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
794
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
795
- * @param {["poi"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["poi"])
796
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
797
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
798
- * @param {object} data.filters - data.filters (default: {"parent.@{pathParams.id}":{"$exists":true}})
799
- * @param {Object.<string, { $exists: true } | any>} data.filters - Clés matching "^parent\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$"
800
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
801
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
802
- * @param {object} data.pathParams - data.pathParams
803
- * @param {"citoyens" | "projects" | "organizations"} data.pathParams.type - Type d'entité (default: "citoyens")
804
- * @param {string} data.pathParams.id - ID de l'utilisateur ou de l'entité
640
+ * @param {import("./EndpointApi.types").GetPoisAdminData} data - Données envoyées à l'API
805
641
  * @returns {Promise<Object>} - Les données de réponse.
806
642
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
807
643
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
808
644
  * @throws {Error} - En cas d'erreur inattendue.
809
645
  */
810
- async getPoisAdmin(data = {}) {
646
+ async getPoisAdmin(data) {
647
+ if (!data || typeof data !== "object") {
648
+ throw new TypeError("Le paramètre data doit être un objet.");
649
+ }
811
650
  return this.callIsConnected("GET_POIS_ADMIN", data);
812
651
  }
813
-
652
+
814
653
  /**
815
654
  * Récupérer les organisations non administrables : Récupère la liste des organisations auxquelles l’utilisateur appartient sans les administrer.
816
655
  * Constant : GET_ORGANIZATIONS_NO_ADMIN
817
- * @param {object} data - data
818
- * @param {string} data.name - Nom ou terme recherché
819
- * @param {["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"])
820
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
821
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
822
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
823
- * @param {["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"])
824
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
825
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
826
- * @param {object} data.filters - data.filters (default: {"links.members.@userId":{"$exists":true},"links.members.@userId.toBeValidated":{"$exists":false},"links.members.@userId.isInviting":{"$exists":false}})
827
- * @param {Object.<string, { $exists: true } | { $exists: false } | any>} data.filters - Clés matching "^links\.members\.(?:[a-f0-9]{24}|@\w+)$", "^links\.members\.(?:[a-f0-9]{24}|@\w+)\.toBeValidated$", "^links\.members\.(?:[a-f0-9]{24}|@\w+)\.isInviting$"
828
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
829
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
656
+ * @param {import("./EndpointApi.types").GetOrganizationsNoAdminData} data - Données envoyées à l'API
830
657
  * @returns {Promise<Object>} - Les données de réponse.
831
658
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
832
659
  * @throws {Error} - En cas d'erreur inattendue.
833
660
  */
834
- async getOrganizationsNoAdmin(data = {}) {
661
+ async getOrganizationsNoAdmin(data) {
662
+ if (!data || typeof data !== "object") {
663
+ throw new TypeError("Le paramètre data doit être un objet.");
664
+ }
835
665
  return this.call("GET_ORGANIZATIONS_NO_ADMIN", data);
836
666
  }
837
-
667
+
838
668
  /**
839
669
  * Récupérer les organisations administrables : Récupère les organisations administrées par l’utilisateur.
840
670
  * Constant : GET_ORGANIZATIONS_ADMIN
841
- * @param {object} data - data
842
- * @param {string} data.name - Nom ou terme recherché
843
- * @param {["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"])
844
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
845
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
846
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
847
- * @param {["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["NGO","Cooperative","LocalBusiness","Group","GovernmentOrganization"])
848
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
849
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
850
- * @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}})
851
- * @param {Object.<string, { $exists: true } | { $exists: false } | any>} data.filters - Clés matching "^links\.members\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$", "^links\.members\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$", "^links\.members\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$"
852
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
853
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
854
- * @param {object} data.pathParams - data.pathParams
855
- * @param {"citoyens" | "organizations"} data.pathParams.type - Type d'entité (default: "citoyens")
856
- * @param {string} data.pathParams.id - ID de l'utilisateur ou de l'entité
671
+ * @param {import("./EndpointApi.types").GetOrganizationsAdminData} data - Données envoyées à l'API
857
672
  * @returns {Promise<Object>} - Les données de réponse.
858
673
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
859
674
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
860
675
  * @throws {Error} - En cas d'erreur inattendue.
861
676
  */
862
- async getOrganizationsAdmin(data = {}) {
677
+ async getOrganizationsAdmin(data) {
678
+ if (!data || typeof data !== "object") {
679
+ throw new TypeError("Le paramètre data doit être un objet.");
680
+ }
863
681
  return this.callIsConnected("GET_ORGANIZATIONS_ADMIN", data);
864
682
  }
865
-
683
+
866
684
  /**
867
685
  * Récupérer les membres non administrables : Récupère les membres d’une organisation sans droits d’admin.
868
686
  * Constant : GET_MEMBERS_NO_ADMIN
869
- * @param {object} data - data
870
- * @param {string} data.name - Nom ou terme recherché
871
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
872
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
873
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
874
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
875
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
876
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
877
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
878
- * @param {object} data.filters - data.filters
879
- * @param {Object.<string, { $exists: true } | { $exists: false } | { $exists: boolean } | { $in: Array<string> } | any>} data.filters - Clés matching "^links\.memberOf\.(?:[a-f0-9]{24}|@\w+)$", "^links\.memberOf\.(?:[a-f0-9]{24}|@\w+)\.toBeValidated$", "^links\.memberOf\.(?:[a-f0-9]{24}|@\w+)\.isInviting$", "^links\.memberOf\.(?:[a-f0-9]{24}|@\w+)\.isAdmin$", "^links\.memberOf\.(?:[a-f0-9]{24}|@\w+)\.roles$"
880
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
881
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
687
+ * @param {import("./EndpointApi.types").GetMembersNoAdminData} data - Données envoyées à l'API
882
688
  * @returns {Promise<Object>} - Les données de réponse.
883
689
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
884
690
  * @throws {Error} - En cas d'erreur inattendue.
885
691
  */
886
- async getMembersNoAdmin(data = {}) {
692
+ async getMembersNoAdmin(data) {
693
+ if (!data || typeof data !== "object") {
694
+ throw new TypeError("Le paramètre data doit être un objet.");
695
+ }
887
696
  return this.call("GET_MEMBERS_NO_ADMIN", data);
888
697
  }
889
-
698
+
890
699
  /**
891
700
  * Récupérer les membres administrables : Récupère les membres d’une organisation administrée par l’utilisateur.
892
701
  * Constant : GET_MEMBERS_ADMIN
893
- * @param {object} data - data
894
- * @param {string} data.name - Nom ou terme recherché
895
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
896
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
897
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
898
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
899
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
900
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
901
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
902
- * @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}})
903
- * @param {Object.<string, { $exists: true } | { $exists: boolean } | { $in: Array<string> } | any>} data.filters - Clés matching "^links\.memberOf\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$", "^links\.memberOf\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$", "^links\.memberOf\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$", "^links\.memberOf\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isAdmin$", "^links\.memberOf\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.roles$"
904
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
905
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
906
- * @param {object} data.pathParams - data.pathParams
907
- * @param {string} data.pathParams.id - ID de l'organisation
702
+ * @param {import("./EndpointApi.types").GetMembersAdminData} data - Données envoyées à l'API
908
703
  * @returns {Promise<Object>} - Les données de réponse.
909
704
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
910
705
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
911
706
  * @throws {Error} - En cas d'erreur inattendue.
912
707
  */
913
- async getMembersAdmin(data = {}) {
708
+ async getMembersAdmin(data) {
709
+ if (!data || typeof data !== "object") {
710
+ throw new TypeError("Le paramètre data doit être un objet.");
711
+ }
914
712
  return this.callIsConnected("GET_MEMBERS_ADMIN", data);
915
713
  }
916
-
714
+
917
715
  /**
918
716
  * Récupérer les amis administrables : Récupère les amis administrée par l’utilisateur.
919
717
  * Constant : GET_FRIENDS_ADMIN
920
- * @param {object} data - data
921
- * @param {string} data.name - Nom ou terme recherché
922
- * @param {["citoyens"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens"])
923
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
924
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
925
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
926
- * @param {["citoyens"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens"])
927
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
928
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
929
- * @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}})
930
- * @param {Object.<string, { $exists: true } | { $exists: boolean } | any>} data.filters - Clés matching "^links\.friends\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$", "^links\.friends\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$", "^links\.friends\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$"
931
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
932
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
933
- * @param {object} data.pathParams - data.pathParams
934
- * @param {string} data.pathParams.id - ID de l'utilisateur (default: "@userId")
718
+ * @param {import("./EndpointApi.types").GetFriendsAdminData} data - Données envoyées à l'API
935
719
  * @returns {Promise<Object>} - Les données de réponse.
936
720
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
937
721
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
938
722
  * @throws {Error} - En cas d'erreur inattendue.
939
723
  */
940
- async getFriendsAdmin(data = {}) {
724
+ async getFriendsAdmin(data) {
725
+ if (!data || typeof data !== "object") {
726
+ throw new TypeError("Le paramètre data doit être un objet.");
727
+ }
941
728
  return this.callIsConnected("GET_FRIENDS_ADMIN", data);
942
729
  }
943
-
730
+
944
731
  /**
945
732
  * Récupérer les suivis non administrables : Liste les entités suivies sans droits d’admin.
946
733
  * Constant : GET_SUBSCRIPTIONS
947
- * @param {object} data - data
948
- * @param {string} data.name - Nom ou terme recherché
949
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"])
950
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
951
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
952
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
953
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"])
954
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
955
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
956
- * @param {object} data.filters - data.filters (default: {"links.followers.@userId":{"$exists":true},"links.followers.@{userId}.toBeValidated":{"$exists":false},"links.followers.@{userId}.isInviting":{"$exists":false}})
957
- * @param {Object.<string, { $exists: true } | { $exists: false } | any>} data.filters - Clés matching "^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$", "^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$", "^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$"
958
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
959
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
734
+ * @param {import("./EndpointApi.types").GetSubscriptionsData} data - Données envoyées à l'API
960
735
  * @returns {Promise<Object>} - Les données de réponse.
961
736
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
962
737
  * @throws {Error} - En cas d'erreur inattendue.
963
738
  */
964
- async getSubscriptions(data = {}) {
739
+ async getSubscriptions(data) {
740
+ if (!data || typeof data !== "object") {
741
+ throw new TypeError("Le paramètre data doit être un objet.");
742
+ }
965
743
  return this.call("GET_SUBSCRIPTIONS", data);
966
744
  }
967
-
745
+
968
746
  /**
969
747
  * Récupérer les suivis administrables : Liste les entités suivies par l’utilisateur, sur lesquelles il est admin.
970
748
  * Constant : GET_SUBSCRIPTIONS_ADMIN
971
- * @param {object} data - data
972
- * @param {string} data.name - Nom ou terme recherché
973
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"])
974
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
975
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
976
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
977
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative","projects"])
978
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
979
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
980
- * @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}})
981
- * @param {Object.<string, { $exists: true } | { $exists: false } | any>} data.filters - Clés matching "^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$", "^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$", "^links\.followers\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$"
982
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
983
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
984
- * @param {object} data.pathParams - data.pathParams
985
- * @param {string} data.pathParams.id - ID de l'utilisateur (default: "@userId")
749
+ * @param {import("./EndpointApi.types").GetSubscriptionsAdminData} data - Données envoyées à l'API
986
750
  * @returns {Promise<Object>} - Les données de réponse.
987
751
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
988
752
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
989
753
  * @throws {Error} - En cas d'erreur inattendue.
990
754
  */
991
- async getSubscriptionsAdmin(data = {}) {
755
+ async getSubscriptionsAdmin(data) {
756
+ if (!data || typeof data !== "object") {
757
+ throw new TypeError("Le paramètre data doit être un objet.");
758
+ }
992
759
  return this.callIsConnected("GET_SUBSCRIPTIONS_ADMIN", data);
993
760
  }
994
-
761
+
995
762
  /**
996
763
  * Récupérer les abonnés non administrables : Liste les abonnés sans droits d’admin.
997
764
  * Constant : GET_SUBSCRIBERS
998
- * @param {object} data - data
999
- * @param {string} data.name - Nom ou terme recherché
1000
- * @param {["citoyens"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens"])
1001
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1002
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
1003
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1004
- * @param {["citoyens"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens"])
1005
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1006
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1007
- * @param {object} data.filters - data.filters (default: {"links.follows.@userId":{"$exists":true},"links.follows.@{userId}.toBeValidated":{"$exists":false},"links.follows.@{userId}.isInviting":{"$exists":false}})
1008
- * @param {Object.<string, { $exists: true } | { $exists: false } | any>} data.filters - Clés matching "^links\.follows\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$", "^links\.follows\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$", "^links\.follows\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$"
1009
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
1010
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
765
+ * @param {import("./EndpointApi.types").GetSubscribersData} data - Données envoyées à l'API
1011
766
  * @returns {Promise<Object>} - Les données de réponse.
1012
767
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1013
768
  * @throws {Error} - En cas d'erreur inattendue.
1014
769
  */
1015
- async getSubscribers(data = {}) {
770
+ async getSubscribers(data) {
771
+ if (!data || typeof data !== "object") {
772
+ throw new TypeError("Le paramètre data doit être un objet.");
773
+ }
1016
774
  return this.call("GET_SUBSCRIBERS", data);
1017
775
  }
1018
-
776
+
1019
777
  /**
1020
778
  * Récupérer les abonnés administrables : Liste les abonnés d’une entité administrée par l’utilisateur.
1021
779
  * Constant : GET_SUBSCRIBERS_ADMIN
1022
- * @param {object} data - data
1023
- * @param {string} data.name - Nom ou terme recherché
1024
- * @param {["citoyens"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens"])
1025
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1026
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
1027
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1028
- * @param {["citoyens"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens"])
1029
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1030
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1031
- * @param {object} data.filters - data.filters (default: {"links.follows.@{pathParams.id}":{"$exists":true}})
1032
- * @param {Object.<string, { $exists: true } | any>} data.filters - Clés matching "^links\.follows\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$"
1033
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
1034
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
1035
- * @param {object} data.pathParams - data.pathParams
1036
- * @param {"citoyens" | "organizations" | "projects"} data.pathParams.type - Type d'entité (default: "citoyens")
1037
- * @param {string} data.pathParams.id - ID de l'utilisateur ou de l'entité
780
+ * @param {import("./EndpointApi.types").GetSubscribersAdminData} data - Données envoyées à l'API
1038
781
  * @returns {Promise<Object>} - Les données de réponse.
1039
782
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1040
783
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1041
784
  * @throws {Error} - En cas d'erreur inattendue.
1042
785
  */
1043
- async getSubscribersAdmin(data = {}) {
786
+ async getSubscribersAdmin(data) {
787
+ if (!data || typeof data !== "object") {
788
+ throw new TypeError("Le paramètre data doit être un objet.");
789
+ }
1044
790
  return this.callIsConnected("GET_SUBSCRIBERS_ADMIN", data);
1045
791
  }
1046
-
792
+
1047
793
  /**
1048
794
  * Récupérer les contributeurs non administrables : Récupère les contributeurs sans droits d’admin.
1049
795
  * Constant : GET_CONTRIBUTORS
1050
- * @param {object} data - data
1051
- * @param {string} data.name - Nom ou terme recherché
1052
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1053
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1054
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
1055
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1056
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1057
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1058
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1059
- * @param {object} data.filters - data.filters
1060
- * @param {Object.<string, { $exists: true } | { $exists: false } | { $exists: boolean } | { $in: Array<string> } | any>} data.filters - Clés matching "^links\.projects\.(?:[a-f0-9]{24}|@\w+)$", "^links\.projects\.(?:[a-f0-9]{24}|@\w+)\.toBeValidated$", "^links\.projects\.(?:[a-f0-9]{24}|@\w+)\.isInviting$", "^links\.projects\.(?:[a-f0-9]{24}|@\w+)\.isAdmin$", "^links\.projects\.(?:[a-f0-9]{24}|@\w+)\.roles$"
1061
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
1062
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
796
+ * @param {import("./EndpointApi.types").GetContributorsData} data - Données envoyées à l'API
1063
797
  * @returns {Promise<Object>} - Les données de réponse.
1064
798
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1065
799
  * @throws {Error} - En cas d'erreur inattendue.
1066
800
  */
1067
- async getContributors(data = {}) {
801
+ async getContributors(data) {
802
+ if (!data || typeof data !== "object") {
803
+ throw new TypeError("Le paramètre data doit être un objet.");
804
+ }
1068
805
  return this.call("GET_CONTRIBUTORS", data);
1069
806
  }
1070
-
807
+
1071
808
  /**
1072
809
  * Récupérer les contributeurs administrables : Récupère les contributeurs d’un project l’utilisateur est admin.
1073
810
  * Constant : GET_CONTRIBUTORS_ADMIN
1074
- * @param {object} data - data
1075
- * @param {string} data.name - Nom ou terme recherché
1076
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1077
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1078
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
1079
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1080
- * @param {["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1081
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1082
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1083
- * @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}})
1084
- * @param {Object.<string, { $exists: true } | { $exists: boolean } | { $in: Array<string> } | any>} data.filters - Clés matching "^links\.projects\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))$", "^links\.projects\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.toBeValidated$", "^links\.projects\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isInviting$", "^links\.projects\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.isAdmin$", "^links\.projects\.(?:[a-f0-9]{24}|@(?:\{[^}]+\}|[A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)?))\.roles$"
1085
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
1086
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
1087
- * @param {object} data.pathParams - data.pathParams
1088
- * @param {string} data.pathParams.id - ID du projet
811
+ * @param {import("./EndpointApi.types").GetContributorsAdminData} data - Données envoyées à l'API
1089
812
  * @returns {Promise<Object>} - Les données de réponse.
1090
813
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1091
814
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1092
815
  * @throws {Error} - En cas d'erreur inattendue.
1093
816
  */
1094
- async getContributorsAdmin(data = {}) {
817
+ async getContributorsAdmin(data) {
818
+ if (!data || typeof data !== "object") {
819
+ throw new TypeError("Le paramètre data doit être un objet.");
820
+ }
1095
821
  return this.callIsConnected("GET_CONTRIBUTORS_ADMIN", data);
1096
822
  }
1097
-
823
+
1098
824
  /**
1099
825
  * Recherche globale des badges : Recherche des badges publics en fonction de divers critères.
1100
826
  * Constant : GET_BADGES
1101
- * @param {object} data - data
1102
- * @param {string} data.name - Nom ou terme recherché
1103
- * @param {["badges"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["badges"])
1104
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1105
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
1106
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1107
- * @param {["badges"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["badges"])
1108
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1109
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1110
- * @param {object} data.filters - data.filters
1111
- * @param {false} data.filters.preferences.private - Indique si le badge est privé ou public (default: false)
1112
- * @param {boolean} data.filters.isParcours - Indique si le badge est un parcours
1113
- * @param {object} data.filters.$or - data.filters.$or
1114
- * @param {Object.<string, { $exists: true } | any>} data.filters.$or - Clés matching "^issuer\.(?:[a-f0-9]{24}|@\w+)$"
1115
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
1116
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
1117
- * @returns {Promise<Object>} - Les données de réponse.
1118
- * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1119
- * @throws {Error} - En cas d'erreur inattendue.
1120
- */
1121
- async getBadges(data = {}) {
827
+ * @param {import("./EndpointApi.types").GetBadgesData} data - Données envoyées à l'API
828
+ * @returns {Promise<Object>} - Les données de réponse.
829
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
830
+ * @throws {Error} - En cas d'erreur inattendue.
831
+ */
832
+ async getBadges(data) {
833
+ if (!data || typeof data !== "object") {
834
+ throw new TypeError("Le paramètre data doit être un objet.");
835
+ }
1122
836
  return this.call("GET_BADGES", data);
1123
837
  }
1124
-
838
+
1125
839
  /**
1126
840
  * Recherche globale des badges : Recherche des badges publics en fonction de divers critères.
1127
841
  * Constant : GET_BADGES_FILTERS
1128
- * @param {object} data - data
1129
- * @param {string} data.name - Nom ou terme recherché
1130
- * @param {["badges"]} data.fields - data.fields (default: ["badges"])
1131
- * @param {["citoyens","projects","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"]} data.searchType - Types d'entités à inclure dans la recherche (default: ["citoyens","projects","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1132
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1133
- * @param {""} data.initType - Type initial de la recherche, vide par défaut (default: "")
1134
- * @param {true} data.count - Indique si les types doivent être comptés dans les résultats (default: true)
1135
- * @param {["citoyens","projects","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"]} data.countType - Liste fixe des types à compter dans les résultats (default: ["citoyens","projects","NGO","LocalBusiness","Group","GovernmentOrganization","Cooperative"])
1136
- * @param {number} data.indexStep - Nombre d’éléments à récupérer (limite de pagination) (default: 30)
1137
- * @param {true} data.notSourceKey - Flag pour ne pas filtrer sur une clé de source spécifique (default: true)
1138
- * @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}})
1139
- * @param {Object.<string, { indexMin: number, indexMax: number } | any>} data.ranges - Clés matching "^[a-zA-Z][a-zA-Z0-9]*$"
1140
- * @param {object} data.filters - data.filters
1141
- * @param {""} data.locality - Localité vide ou spécifique (default: "")
1142
- * @param {false} data.fediverse - Indique si la recherche doit s'étendre au Fediverse (toujours désactivé) (default: false)
1143
- * @returns {Promise<Object>} - Les données de réponse.
1144
- * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1145
- * @throws {Error} - En cas d'erreur inattendue.
1146
- */
1147
- async getBadgesFilters(data = {}) {
842
+ * @param {import("./EndpointApi.types").GetBadgesFiltersData} data - Données envoyées à l'API
843
+ * @returns {Promise<Object>} - Les données de réponse.
844
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
845
+ * @throws {Error} - En cas d'erreur inattendue.
846
+ */
847
+ async getBadgesFilters(data) {
848
+ if (!data || typeof data !== "object") {
849
+ throw new TypeError("Le paramètre data doit être un objet.");
850
+ }
1148
851
  return this.call("GET_BADGES_FILTERS", data);
1149
852
  }
1150
-
853
+
1151
854
  /**
1152
855
  * Suivre un élément : Permet à un utilisateur de suivre un élément (projet, organisation...).
1153
856
  * Constant : CONNECT
1154
- * @param {object} data - data
1155
- * @param {string} data.childId - ID de l'élément à suivre (projet, organisation...) (default: "@userId")
1156
- * @param {"citoyens"} data.childType - Type de l'élément à suivre (default: "citoyens")
1157
- * @param {"citoyens" | "organizations" | "projects" | "events"} data.parentType - Type de l'élément parent (projet, organisation...)
1158
- * @param {string} data.parentId - ID de l'élément parent
1159
- * @param {"admin" | "member" | "contributor" | "attendee" | "friend" | "connect"} data.connectType - Type de connexion
857
+ * @param {import("./EndpointApi.types").ConnectData} data - Données envoyées à l'API
1160
858
  * @returns {Promise<Object>} - Les données de réponse.
1161
859
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1162
860
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1163
861
  * @throws {Error} - En cas d'erreur inattendue.
1164
862
  */
1165
- async connect(data = {}) {
863
+ async connect(data) {
864
+ if (!data || typeof data !== "object") {
865
+ throw new TypeError("Le paramètre data doit être un objet.");
866
+ }
1166
867
  return this.callIsConnected("CONNECT", data);
1167
868
  }
1168
-
869
+
1169
870
  /**
1170
871
  * Se déconnecter d'un élément : Permet de supprimer le lien entre un utilisateur et un élément.
1171
872
  * Constant : DISCONNECT
1172
- * @param {object} data - data
1173
- * @param {string} data.childId - ID de l'élément à déconnecter (projet, organisation...) (default: "@userId")
1174
- * @param {"citoyens"} data.childType - Type de l'élément à déconnecter (default: "citoyens")
1175
- * @param {"citoyens" | "organizations" | "projects" | "events"} data.parentType - Type de l'élément parent (projet, organisation...)
1176
- * @param {string} data.parentId - ID de l'élément parent
1177
- * @param {"admin" | "member" | "contributor" | "attendee" | "friend"} data.connectType - Type de connexion
873
+ * @param {import("./EndpointApi.types").DisconnectData} data - Données envoyées à l'API
1178
874
  * @returns {Promise<Object>} - Les données de réponse.
1179
875
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1180
876
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1181
877
  * @throws {Error} - En cas d'erreur inattendue.
1182
878
  */
1183
- async disconnect(data = {}) {
879
+ async disconnect(data) {
880
+ if (!data || typeof data !== "object") {
881
+ throw new TypeError("Le paramètre data doit être un objet.");
882
+ }
1184
883
  return this.callIsConnected("DISCONNECT", data);
1185
884
  }
1186
-
885
+
1187
886
  /**
1188
887
  * 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
1189
888
  * Constant : GET_ELEMENTS_KEY
1190
- * @param {object} data.pathParams - data.pathParams
1191
- * @param {string} data.pathParams.slug - Slug de l'élément à récupérer
889
+ * @param {import("./EndpointApi.types").GetElementsKeyData} data - Données envoyées à l'API
1192
890
  * @returns {Promise<Object>} - Les données de réponse.
1193
891
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1194
892
  * @throws {Error} - En cas d'erreur inattendue.
1195
893
  */
1196
- async getElementsKey(data = {}) {
894
+ async getElementsKey(data) {
895
+ if (!data || typeof data !== "object") {
896
+ throw new TypeError("Le paramètre data doit être un objet.");
897
+ }
1197
898
  return this.call("GET_ELEMENTS_KEY", data);
1198
899
  }
1199
-
900
+
1200
901
  /**
1201
902
  * Récupérer les favoris d'un utilisateur : Récupère la liste des favoris d’un utilisateur.
1202
903
  * Constant : GET_FAVORIS
1203
- * @param {object} data.pathParams - data.pathParams
1204
- * @param {string} data.pathParams.id - ID de l'utilisateur (default: "@userId")
904
+ * @param {import("./EndpointApi.types").GetFavorisData} data - Données envoyées à l'API
1205
905
  * @returns {Promise<Object>} - Les données de réponse.
1206
906
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1207
907
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1208
908
  * @throws {Error} - En cas d'erreur inattendue.
1209
909
  */
1210
- async getFavoris(data = {}) {
910
+ async getFavoris(data) {
911
+ if (!data || typeof data !== "object") {
912
+ throw new TypeError("Le paramètre data doit être un objet.");
913
+ }
1211
914
  return this.callIsConnected("GET_FAVORIS", data);
1212
915
  }
1213
-
916
+
1214
917
  /**
1215
918
  * Supprimer un favori : Supprime un élément des favoris de l’utilisateur.
1216
919
  * Constant : DELETE_FAVORIS
1217
- * @param {object} data - data
1218
- * @param {"@userId"} data.id - ID de l’utilisateur (default: "@userId")
1219
- * @param {"citoyens"} data.collection - data.collection (default: "citoyens")
1220
- * @param {"preferences.search.@{pathParams.index}"} data.path - Chemin à retirer (default: "preferences.search.@{pathParams.index}")
1221
- * @param {"preferences.search"} data.pull - data.pull
1222
- * @param {""} data.value - Valeur (default: "")
1223
- * @param {object} data.pathParams - data.pathParams
1224
- * @param {number} data.pathParams.index - Index du favoris à supprimer
920
+ * @param {import("./EndpointApi.types").DeleteFavorisData} data - Données envoyées à l'API
1225
921
  * @returns {Promise<Object>} - Les données de réponse.
1226
922
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1227
923
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1228
924
  * @throws {Error} - En cas d'erreur inattendue.
1229
925
  */
1230
- async deleteFavoris(data = {}) {
926
+ async deleteFavoris(data) {
927
+ if (!data || typeof data !== "object") {
928
+ throw new TypeError("Le paramètre data doit être un objet.");
929
+ }
1231
930
  return this.callIsConnected("DELETE_FAVORIS", data);
1232
931
  }
1233
-
932
+
1234
933
  /**
1235
934
  * Ajouter un favori : Ajoute un élément aux favoris de l’utilisateur.
1236
935
  * Constant : ADD_FAVORIS
1237
- * @param {object} data - data
1238
- * @param {"@userId"} data.id - ID de l’utilisateur (default: "@userId")
1239
- * @param {"citoyens"} data.collection - data.collection (default: "citoyens")
1240
- * @param {"preferences.search"} data.path - Chemin à ajouter (default: "preferences.search")
1241
- * @param {true} data.arrayForm - data.arrayForm
1242
- * @param {object} data.value - data.value
1243
- * @param {string} data.value.url - data.value.url
1244
- * @param {string} data.value.name - data.value.name
1245
- * @param {string} data.value.description - data.value.description
1246
- * @param {Array<string>} data.value.tags - data.value.tags
1247
- * @param {object} data.value.locality - data.value.locality
1248
- * @param {Object.<string, any>} data.value.locality - Clés matching "^[a-f0-9]{24}$"
936
+ * @param {import("./EndpointApi.types").AddFavorisData} data - Données envoyées à l'API
1249
937
  * @returns {Promise<Object>} - Les données de réponse.
1250
938
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1251
939
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1252
940
  * @throws {Error} - En cas d'erreur inattendue.
1253
941
  */
1254
- async addFavoris(data = {}) {
942
+ async addFavoris(data) {
943
+ if (!data || typeof data !== "object") {
944
+ throw new TypeError("Le paramètre data doit être un objet.");
945
+ }
1255
946
  return this.callIsConnected("ADD_FAVORIS", data);
1256
947
  }
1257
-
948
+
1258
949
  /**
1259
950
  * Créer une organisation : Crée une nouvelle organisation.
1260
951
  * Constant : ADD_ORGANIZATION
1261
- * @param {object} data - data
1262
- * @param {string} data.id - ID de l’organisation
1263
- * @param {"organizations"} data.collection - Collection de l’organisation (default: "organizations")
1264
- * @param {"organization"} data.key - data.key (default: "organization")
1265
- * @param {string} data.name - Nom de l’organisation
1266
- * @param {"NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative"} data.type - Type d’organisation
1267
- * @param {"admin" | "member"} data.role - Rôle principal de l’organisation
1268
- * @param {Array<string>} data.tags - data.tags
1269
- * @param {string} data.email - Email de l’organisation
1270
- * @param {string} data.shortDescription - Description courte
1271
- * @param {string} data.url - Site web
1272
- * @param {object} data.preferences - data.preferences (default: {"isOpenData":true,"isOpenEdition":true})
1273
- * @param {boolean} data.preferences.isOpenData - Open data (true/false) (default: true)
1274
- * @param {boolean} data.preferences.isOpenEdition - Édition ouverte (true/false) (default: true)
1275
- * @param {object} data.geo - Coordonnées géographiques
1276
- * @param {"GeoCoordinates"} data.geo.@type - data.geo.@type
1277
- * @param {string | number} data.geo.latitude - data.geo.latitude
1278
- * @param {string | number} data.geo.longitude - data.geo.longitude
1279
- * @param {object} data.geoPosition - Position géographique GeoJSON
1280
- * @param {"Point"} data.geoPosition.type - Type GeoJSON (doit être 'Point')
1281
- * @param {Array<number>} data.geoPosition.coordinates - Tableau contenant [longitude, latitude]
1282
- * @param {true} data.geoPosition.float - Indicateur pour forcer la conversion en float côté serveur (default: true)
1283
- * @param {object} data.address - data.address
1284
- * @param {"PostalAddress"} data.address.@type - data.address.@type
1285
- * @param {string} data.address.addressCountry - data.address.addressCountry
1286
- * @param {string} data.address.codeInsee - data.address.codeInsee
1287
- * @param {string} data.address.addressLocality - data.address.addressLocality
1288
- * @param {string} data.address.localityId - data.address.localityId
1289
- * @param {string} data.address.level1 - data.address.level1
1290
- * @param {string} data.address.level1Name - data.address.level1Name
1291
- * @param {string} data.address.level3 - ID du département. Peut être vide pour les pays étrangers.
1292
- * @param {string} data.address.level3Name - Nom du département. Peut être vide pour les pays étrangers.
1293
- * @param {string} data.address.level4 - ID de la commune. Peut être vide pour les pays étrangers.
1294
- * @param {string} data.address.level4Name - Nom de la commune. Peut être vide pour les pays étrangers.
1295
- * @param {string} data.address.postalCode - data.address.postalCode
1296
- * @param {string} data.address.streetAddress - data.address.streetAddress
1297
- * @param {""} data.scope - data.scope (default: "")
952
+ * @param {import("./EndpointApi.types").AddOrganizationData} data - Données envoyées à l'API
1298
953
  * @returns {Promise<Object>} - Les données de réponse.
1299
954
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1300
955
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1301
956
  * @throws {Error} - En cas d'erreur inattendue.
1302
957
  */
1303
- async addOrganization(data = {}) {
958
+ async addOrganization(data) {
959
+ if (!data || typeof data !== "object") {
960
+ throw new TypeError("Le paramètre data doit être un objet.");
961
+ }
1304
962
  return this.callIsConnected("ADD_ORGANIZATION", data);
1305
963
  }
1306
-
964
+
1307
965
  /**
1308
966
  * Créer un projet : Crée un nouveau projet avec des informations de base et des options supplémentaires.
1309
967
  * Constant : ADD_PROJECT
1310
- * @param {object} data - data
1311
- * @param {string} data.id - ID
1312
- * @param {"projects"} data.collection - Collection (default: "projects")
1313
- * @param {"project"} data.key - data.key (default: "project")
1314
- * @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"}})
1315
- * @param {Object.<string, { type: string, name?: string } | any>} data.parent - Clés matching "^(?:[a-f0-9]{24}|@userId)$"
1316
- * @param {string} data.name - Nom du projet
1317
- * @param {boolean} data.public - Visibilité (true/false) (default: true)
1318
- * @param {Array<string>} data.tags - data.tags
1319
- * @param {string} data.shortDescription - Description courte
1320
- * @param {string} data.url - Site web
1321
- * @param {object} data.preferences - data.preferences (default: {"isOpenData":false,"isOpenEdition":false,"crowdfunding":true})
1322
- * @param {boolean} data.preferences.isOpenData - Open data (true/false) (default: false)
1323
- * @param {boolean} data.preferences.isOpenEdition - Édition ouverte (true/false) (default: false)
1324
- * @param {boolean} data.preferences.crowdfunding - Crowdfunding (true/false) (default: true)
1325
- * @param {object} data.geo - Coordonnées géographiques
1326
- * @param {"GeoCoordinates"} data.geo.@type - data.geo.@type
1327
- * @param {string | number} data.geo.latitude - data.geo.latitude
1328
- * @param {string | number} data.geo.longitude - data.geo.longitude
1329
- * @param {object} data.geoPosition - Position géographique GeoJSON
1330
- * @param {"Point"} data.geoPosition.type - Type GeoJSON (doit être 'Point')
1331
- * @param {Array<number>} data.geoPosition.coordinates - Tableau contenant [longitude, latitude]
1332
- * @param {true} data.geoPosition.float - Indicateur pour forcer la conversion en float côté serveur (default: true)
1333
- * @param {object} data.address - data.address
1334
- * @param {"PostalAddress"} data.address.@type - data.address.@type
1335
- * @param {string} data.address.addressCountry - data.address.addressCountry
1336
- * @param {string} data.address.codeInsee - data.address.codeInsee
1337
- * @param {string} data.address.addressLocality - data.address.addressLocality
1338
- * @param {string} data.address.localityId - data.address.localityId
1339
- * @param {string} data.address.level1 - data.address.level1
1340
- * @param {string} data.address.level1Name - data.address.level1Name
1341
- * @param {string} data.address.level3 - ID du département. Peut être vide pour les pays étrangers.
1342
- * @param {string} data.address.level3Name - Nom du département. Peut être vide pour les pays étrangers.
1343
- * @param {string} data.address.level4 - ID de la commune. Peut être vide pour les pays étrangers.
1344
- * @param {string} data.address.level4Name - Nom de la commune. Peut être vide pour les pays étrangers.
1345
- * @param {string} data.address.postalCode - data.address.postalCode
1346
- * @param {string} data.address.streetAddress - data.address.streetAddress
1347
- * @param {""} data.scope - data.scope (default: "")
968
+ * @param {import("./EndpointApi.types").AddProjectData} data - Données envoyées à l'API
1348
969
  * @returns {Promise<Object>} - Les données de réponse.
1349
970
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1350
971
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1351
972
  * @throws {Error} - En cas d'erreur inattendue.
1352
973
  */
1353
- async addProject(data = {}) {
974
+ async addProject(data) {
975
+ if (!data || typeof data !== "object") {
976
+ throw new TypeError("Le paramètre data doit être un objet.");
977
+ }
1354
978
  return this.callIsConnected("ADD_PROJECT", data);
1355
979
  }
1356
-
980
+
1357
981
  /**
1358
982
  * Créer un POI : Crée un nouveau POI (Point d'Intérêt).
1359
983
  * Constant : ADD_POI
1360
- * @param {object} data - data
1361
- * @param {string} data.id - ID du POI
1362
- * @param {"poi"} data.collection - Collection du POI (default: "poi")
1363
- * @param {"poi"} data.key - data.key (default: "poi")
1364
- * @param {"link" | "tool" | "machine" | "software" | "rh" | "Resource material" | "Financial Ressource" | "ficheBlanche" | "geoJson" | "compostPickup" | "video" | "sharedLibrary" | "recoveryCenter" | "trash" | "history" | "something2See" | "funPlace" | "place" | "artPiece" | "streetArts" | "openScene" | "stand" | "parking" | "other"} data.type - Type de POI
1365
- * @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"}})
1366
- * @param {Object.<string, { type: string, name?: string } | any>} data.parent - Clés matching "^(?:[a-f0-9]{24}|@userId)$"
1367
- * @param {string} data.name - Nom du poi
1368
- * @param {string} data.description - Description
1369
- * @param {Array<string>} data.tags - data.tags
1370
- * @param {Array<string>} data.urls - URLs externes associées
1371
- * @param {object} data.geo - Coordonnées géographiques
1372
- * @param {"GeoCoordinates"} data.geo.@type - data.geo.@type
1373
- * @param {string | number} data.geo.latitude - data.geo.latitude
1374
- * @param {string | number} data.geo.longitude - data.geo.longitude
1375
- * @param {object} data.geoPosition - Position géographique GeoJSON
1376
- * @param {"Point"} data.geoPosition.type - Type GeoJSON (doit être 'Point')
1377
- * @param {Array<number>} data.geoPosition.coordinates - Tableau contenant [longitude, latitude]
1378
- * @param {true} data.geoPosition.float - Indicateur pour forcer la conversion en float côté serveur (default: true)
1379
- * @param {object} data.address - data.address
1380
- * @param {"PostalAddress"} data.address.@type - data.address.@type
1381
- * @param {string} data.address.addressCountry - data.address.addressCountry
1382
- * @param {string} data.address.codeInsee - data.address.codeInsee
1383
- * @param {string} data.address.addressLocality - data.address.addressLocality
1384
- * @param {string} data.address.localityId - data.address.localityId
1385
- * @param {string} data.address.level1 - data.address.level1
1386
- * @param {string} data.address.level1Name - data.address.level1Name
1387
- * @param {string} data.address.level3 - ID du département. Peut être vide pour les pays étrangers.
1388
- * @param {string} data.address.level3Name - Nom du département. Peut être vide pour les pays étrangers.
1389
- * @param {string} data.address.level4 - ID de la commune. Peut être vide pour les pays étrangers.
1390
- * @param {string} data.address.level4Name - Nom de la commune. Peut être vide pour les pays étrangers.
1391
- * @param {string} data.address.postalCode - data.address.postalCode
1392
- * @param {string} data.address.streetAddress - data.address.streetAddress
1393
- * @param {""} data.scope - data.scope (default: "")
984
+ * @param {import("./EndpointApi.types").AddPoiData} data - Données envoyées à l'API
1394
985
  * @returns {Promise<Object>} - Les données de réponse.
1395
986
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1396
987
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1397
988
  * @throws {Error} - En cas d'erreur inattendue.
1398
989
  */
1399
- async addPoi(data = {}) {
990
+ async addPoi(data) {
991
+ if (!data || typeof data !== "object") {
992
+ throw new TypeError("Le paramètre data doit être un objet.");
993
+ }
1400
994
  return this.callIsConnected("ADD_POI", data);
1401
995
  }
1402
-
996
+
1403
997
  /**
1404
998
  * Créer un événement : Crée un nouvel événement.
1405
999
  * Constant : ADD_EVENT
1406
- * @param {object} data - data
1407
- * @param {string} data.id - ID de l’événement
1408
- * @param {"events"} data.collection - Collection de l’événement (default: "events")
1409
- * @param {"event"} data.key - data.key (default: "event")
1410
- * @param {"workshop" | "competition" | "concert" | "contest" | "conference" | "debate" | "exhibition" | "festival" | "crowdfunding" | "fair" | "course" | "protest" | "market" | "film" | "getTogether" | "meeting" | "spectacle" | "internship" | "stand" | "others"} data.type - Type d’événement
1411
- * @param {boolean} data.public - Visibilité (true/false) (default: true)
1412
- * @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"}})
1413
- * @param {Object.<string, { type: string, name?: string } | any>} data.organizer - Clés matching "^(?:[a-f0-9]{24}|@userId)$"
1414
- * @param {object} data.parent - Objet contenant les entités parentes (clé = ID). null signifie que les parents ne sont pas modifiés.
1415
- * @param {Object.<string, { type: string, name?: string } | any>} data.parent - Clés matching "^(?:[a-f0-9]{24}|@userId)$"
1416
- * @param {string} data.name - Nom du poi
1417
- * @param {string} data.shortDescription - Description courte
1418
- * @param {Array<string>} data.tags - data.tags
1419
- * @param {string} data.url - Site web
1420
- * @param {string} data.email - Email de l’organisation
1421
- * @param {object} data.preferences - data.preferences (default: {"isOpenData":false,"isOpenEdition":false})
1422
- * @param {boolean} data.preferences.isOpenData - Open data (true/false) (default: false)
1423
- * @param {boolean} data.preferences.isOpenEdition - Édition ouverte (true/false) (default: false)
1424
- * @param {string} data.timeZone - Fuseau horaire IANA
1425
- * @param {boolean} data.recurrency - Indique si l'événement est récurrent (true/false) (default: false)
1426
- * @param {string} data.startDate - Date et heure de début (ISO 8601 avec offset)
1427
- * @param {string} data.endDate - Date et heure de fin (ISO 8601 avec offset)
1428
- * @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: ["","","","","","",""])
1429
- * @param {object} data.geo - Coordonnées géographiques
1430
- * @param {"GeoCoordinates"} data.geo.@type - data.geo.@type
1431
- * @param {string | number} data.geo.latitude - data.geo.latitude
1432
- * @param {string | number} data.geo.longitude - data.geo.longitude
1433
- * @param {object} data.geoPosition - Position géographique GeoJSON
1434
- * @param {"Point"} data.geoPosition.type - Type GeoJSON (doit être 'Point')
1435
- * @param {Array<number>} data.geoPosition.coordinates - Tableau contenant [longitude, latitude]
1436
- * @param {true} data.geoPosition.float - Indicateur pour forcer la conversion en float côté serveur (default: true)
1437
- * @param {object} data.address - data.address
1438
- * @param {"PostalAddress"} data.address.@type - data.address.@type
1439
- * @param {string} data.address.addressCountry - data.address.addressCountry
1440
- * @param {string} data.address.codeInsee - data.address.codeInsee
1441
- * @param {string} data.address.addressLocality - data.address.addressLocality
1442
- * @param {string} data.address.localityId - data.address.localityId
1443
- * @param {string} data.address.level1 - data.address.level1
1444
- * @param {string} data.address.level1Name - data.address.level1Name
1445
- * @param {string} data.address.level3 - ID du département. Peut être vide pour les pays étrangers.
1446
- * @param {string} data.address.level3Name - Nom du département. Peut être vide pour les pays étrangers.
1447
- * @param {string} data.address.level4 - ID de la commune. Peut être vide pour les pays étrangers.
1448
- * @param {string} data.address.level4Name - Nom de la commune. Peut être vide pour les pays étrangers.
1449
- * @param {string} data.address.postalCode - data.address.postalCode
1450
- * @param {string} data.address.streetAddress - data.address.streetAddress
1451
- * @param {""} data.scope - data.scope (default: "")
1000
+ * @param {import("./EndpointApi.types").AddEventData} data - Données envoyées à l'API
1452
1001
  * @returns {Promise<Object>} - Les données de réponse.
1453
1002
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1454
1003
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1455
1004
  * @throws {Error} - En cas d'erreur inattendue.
1456
1005
  */
1457
- async addEvent(data = {}) {
1006
+ async addEvent(data) {
1007
+ if (!data || typeof data !== "object") {
1008
+ throw new TypeError("Le paramètre data doit être un objet.");
1009
+ }
1458
1010
  return this.callIsConnected("ADD_EVENT", data);
1459
1011
  }
1460
-
1012
+
1461
1013
  /**
1462
1014
  * Supprimer un POI : Supprime un POI existant.
1463
1015
  * Constant : DELETE_POI
1464
- * @param {object} data - data
1465
- * @param {string} data.reason - Raison de la suppression (default: "")
1466
- * @param {object} data.pathParams - data.pathParams
1467
- * @param {string} data.pathParams.id - ID de l'élément à supprimer
1016
+ * @param {import("./EndpointApi.types").DeletePoiData} data - Données envoyées à l'API
1468
1017
  * @returns {Promise<Object>} - Les données de réponse.
1469
1018
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1470
1019
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1471
1020
  * @throws {Error} - En cas d'erreur inattendue.
1472
1021
  */
1473
- async deletePoi(data = {}) {
1022
+ async deletePoi(data) {
1023
+ if (!data || typeof data !== "object") {
1024
+ throw new TypeError("Le paramètre data doit être un objet.");
1025
+ }
1474
1026
  return this.callIsConnected("DELETE_POI", data);
1475
1027
  }
1476
-
1028
+
1477
1029
  /**
1478
1030
  * Supprimer un événement : Supprime un événement spécifique.
1479
1031
  * Constant : DELETE_EVENT
1480
- * @param {object} data - data
1481
- * @param {string} data.reason - Raison de la suppression (default: "")
1482
- * @param {object} data.pathParams - data.pathParams
1483
- * @param {string} data.pathParams.id - ID de l'élément à supprimer
1032
+ * @param {import("./EndpointApi.types").DeleteEventData} data - Données envoyées à l'API
1484
1033
  * @returns {Promise<Object>} - Les données de réponse.
1485
1034
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1486
1035
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1487
1036
  * @throws {Error} - En cas d'erreur inattendue.
1488
1037
  */
1489
- async deleteEvent(data = {}) {
1038
+ async deleteEvent(data) {
1039
+ if (!data || typeof data !== "object") {
1040
+ throw new TypeError("Le paramètre data doit être un objet.");
1041
+ }
1490
1042
  return this.callIsConnected("DELETE_EVENT", data);
1491
1043
  }
1492
-
1044
+
1493
1045
  /**
1494
1046
  * Supprimer un élément : Supprime un élément existant.
1495
1047
  * Constant : DELETE_ELEMENT
1496
- * @param {object} data - data
1497
- * @param {string} data.reason - Raison de la suppression (default: "")
1498
- * @param {object} data.pathParams - data.pathParams
1499
- * @param {string} data.pathParams.type - Type d'élément à supprimer
1500
- * @param {string} data.pathParams.id - ID de l'élément à supprimer
1048
+ * @param {import("./EndpointApi.types").DeleteElementData} data - Données envoyées à l'API
1501
1049
  * @returns {Promise<Object>} - Les données de réponse.
1502
1050
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1503
1051
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1504
1052
  * @throws {Error} - En cas d'erreur inattendue.
1505
1053
  */
1506
- async deleteElement(data = {}) {
1054
+ async deleteElement(data) {
1055
+ if (!data || typeof data !== "object") {
1056
+ throw new TypeError("Le paramètre data doit être un objet.");
1057
+ }
1507
1058
  return this.callIsConnected("DELETE_ELEMENT", data);
1508
1059
  }
1509
-
1060
+
1510
1061
  /**
1511
1062
  * Ajouter une image à un élément : Ajoute une image à un élément.
1512
1063
  * Constant : ADD_IMAGE_ELEMENT
1513
- * @param {object} data - data
1514
- * @param {string} data.qquuid - ID unique du fichier
1515
- * @param {string} data.qqfilename - Nom du fichier
1516
- * @param {number} data.qqtotalfilesize - Taille totale du fichier
1517
- * @param {any} data.qqfile - Données binaires de l'image
1518
- * @param {object} data.pathParams - data.pathParams
1519
- * @param {"badges" | "events"} data.pathParams.folder - Dossier de destination
1520
- * @param {string} data.pathParams.ownerId - ID du propriétaire de l'image
1064
+ * @param {import("./EndpointApi.types").AddImageElementData} data - Données envoyées à l'API
1521
1065
  * @returns {Promise<Object>} - Les données de réponse.
1522
1066
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1523
1067
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1524
1068
  * @throws {Error} - En cas d'erreur inattendue.
1525
1069
  */
1526
- async addImageElement(data = {}) {
1070
+ async addImageElement(data) {
1071
+ if (!data || typeof data !== "object") {
1072
+ throw new TypeError("Le paramètre data doit être un objet.");
1073
+ }
1527
1074
  return this.callIsConnected("ADD_IMAGE_ELEMENT", data);
1528
1075
  }
1529
-
1076
+
1530
1077
  /**
1531
1078
  * Valider un lien : Permet de valider un lien (ex: rejoindre un projet, accepter un membre...).
1532
1079
  * Constant : LINK_VALIDATE
1533
- * @param {object} data - data
1534
- * @param {string} data.childId - ID de l’enfant (default: "@userId")
1535
- * @param {"citoyens"} data.childType - Type de l’enfant (default: "citoyens")
1536
- * @param {"citoyens" | "organizations" | "projects" | "events"} data.parentType - Type du parent
1537
- * @param {string} data.parentId - ID du parent
1538
- * @param {"isInviting" | "toBeValidated" | "isAdminPending"} data.linkOption - Type de validation
1080
+ * @param {import("./EndpointApi.types").LinkValidateData} data - Données envoyées à l'API
1539
1081
  * @returns {Promise<Object>} - Les données de réponse.
1540
1082
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1541
1083
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1542
1084
  * @throws {Error} - En cas d'erreur inattendue.
1543
1085
  */
1544
- async linkValidate(data = {}) {
1086
+ async linkValidate(data) {
1087
+ if (!data || typeof data !== "object") {
1088
+ throw new TypeError("Le paramètre data doit être un objet.");
1089
+ }
1545
1090
  return this.callIsConnected("LINK_VALIDATE", data);
1546
1091
  }
1547
-
1092
+
1548
1093
  /**
1549
1094
  * Recherche avec autocomplétion (membres) : Recherche des membres avec autocomplétion.
1550
1095
  * Constant : SEARCH_MEMBER_AUTOCOMPLETE
1551
- * @param {object} data - data
1552
- * @param {string} data.search - Terme recherché
1553
- * @param {"personOnly" | "organizationOnly" | "mixte"} data.searchMode - Mode de recherche (default: "personOnly")
1096
+ * @param {import("./EndpointApi.types").SearchMemberAutocompleteData} data - Données envoyées à l'API
1554
1097
  * @returns {Promise<Object>} - Les données de réponse.
1555
1098
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1556
1099
  * @throws {Error} - En cas d'erreur inattendue.
1557
1100
  */
1558
- async searchMemberAutocomplete(data = {}) {
1101
+ async searchMemberAutocomplete(data) {
1102
+ if (!data || typeof data !== "object") {
1103
+ throw new TypeError("Le paramètre data doit être un objet.");
1104
+ }
1559
1105
  return this.call("SEARCH_MEMBER_AUTOCOMPLETE", data);
1560
1106
  }
1561
-
1107
+
1562
1108
  /**
1563
1109
  * Récupérer les notifications : Récupère la liste des notifications pour un utilisateur.
1564
1110
  * Constant : GET_NOTIFICATIONS
1565
- * @param {object} data - data
1566
- * @param {number} data.indexMin - Index minimum pour la pagination (default: 0)
1567
- * @param {object} data.pathParams - data.pathParams
1568
- * @param {"citoyens"} data.pathParams.type - Type de notification (default: "citoyens")
1569
- * @param {string} data.pathParams.id - ID de l'utilisateur (default: "@userId")
1111
+ * @param {import("./EndpointApi.types").GetNotificationsData} data - Données envoyées à l'API
1570
1112
  * @returns {Promise<Object>} - Les données de réponse.
1571
1113
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1572
1114
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1573
1115
  * @throws {Error} - En cas d'erreur inattendue.
1574
1116
  */
1575
- async getNotifications(data = {}) {
1117
+ async getNotifications(data) {
1118
+ if (!data || typeof data !== "object") {
1119
+ throw new TypeError("Le paramètre data doit être un objet.");
1120
+ }
1576
1121
  return this.callIsConnected("GET_NOTIFICATIONS", data);
1577
1122
  }
1578
-
1123
+
1579
1124
  /**
1580
1125
  * Récupérer le nombre de notifications : Récupère le nombre de notifications pour un utilisateur.
1581
1126
  * Constant : GET_NOTIFICATIONS_COUNT
1582
- * @param {object} data - data
1583
- * @param {number} data.refreshTimestamp - Timestamp de rafraîchissement
1584
- * @param {object} data.pathParams - data.pathParams
1585
- * @param {"citoyens"} data.pathParams.type - Type de notification (default: "citoyens")
1586
- * @param {string} data.pathParams.id - ID de l'utilisateur (default: "@userId")
1127
+ * @param {import("./EndpointApi.types").GetNotificationsCountData} data - Données envoyées à l'API
1587
1128
  * @returns {Promise<Object>} - Les données de réponse.
1588
1129
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1589
1130
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1590
1131
  * @throws {Error} - En cas d'erreur inattendue.
1591
1132
  */
1592
- async getNotificationsCount(data = {}) {
1133
+ async getNotificationsCount(data) {
1134
+ if (!data || typeof data !== "object") {
1135
+ throw new TypeError("Le paramètre data doit être un objet.");
1136
+ }
1593
1137
  return this.callIsConnected("GET_NOTIFICATIONS_COUNT", data);
1594
1138
  }
1595
-
1139
+
1596
1140
  /**
1597
1141
  * Mettre à jour toutes les notifications : Marque toutes les notifications comme vues ou lues.
1598
1142
  * Constant : NOTIFICATION_UPDATE
1599
- * @param {object} data - data
1600
- * @param {"seen" | "read"} data.action - Action à effectuer
1601
- * @param {true} data.all - Marquer toutes les notifications comme vues ou lues (default: true)
1143
+ * @param {import("./EndpointApi.types").NotificationUpdateData} data - Données envoyées à l'API
1602
1144
  * @returns {Promise<Object>} - Les données de réponse.
1603
1145
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1604
1146
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1605
1147
  * @throws {Error} - En cas d'erreur inattendue.
1606
1148
  */
1607
- async notificationUpdate(data = {}) {
1149
+ async notificationUpdate(data) {
1150
+ if (!data || typeof data !== "object") {
1151
+ throw new TypeError("Le paramètre data doit être un objet.");
1152
+ }
1608
1153
  return this.callIsConnected("NOTIFICATION_UPDATE", data);
1609
1154
  }
1610
-
1155
+
1611
1156
  /**
1612
1157
  * Supprimer toutes les notifications : Supprime toutes les notifications de l’utilisateur.
1613
1158
  * Constant : REMOVE_ALL_NOTIFICATIONS
@@ -1616,83 +1161,87 @@ class EndpointApi {
1616
1161
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1617
1162
  * @throws {Error} - En cas d'erreur inattendue.
1618
1163
  */
1619
- async removeAllNotifications(data = {}) {
1620
- return this.callIsConnected("REMOVE_ALL_NOTIFICATIONS", data);
1164
+ async removeAllNotifications() {
1165
+ return this.callIsConnected("REMOVE_ALL_NOTIFICATIONS");
1621
1166
  }
1622
-
1167
+
1623
1168
  /**
1624
1169
  * Marquer une notification comme lue : Marque une notification spécifique comme lue.
1625
1170
  * Constant : MARK_NOTIFICATION_AS_READ
1626
- * @param {object} data - data
1627
- * @param {string} data.id - ID de la notification
1171
+ * @param {import("./EndpointApi.types").MarkNotificationAsReadData} data - Données envoyées à l'API
1628
1172
  * @returns {Promise<Object>} - Les données de réponse.
1629
1173
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1630
1174
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1631
1175
  * @throws {Error} - En cas d'erreur inattendue.
1632
1176
  */
1633
- async markNotificationAsRead(data = {}) {
1177
+ async markNotificationAsRead(data) {
1178
+ if (!data || typeof data !== "object") {
1179
+ throw new TypeError("Le paramètre data doit être un objet.");
1180
+ }
1634
1181
  return this.callIsConnected("MARK_NOTIFICATION_AS_READ", data);
1635
1182
  }
1636
-
1183
+
1637
1184
  /**
1638
1185
  * Recherche ActivityPub : Recherche des éléments ActivityPub selon une adresse ou un terme.
1639
1186
  * Constant : ACTIVITYPUB_SEARCH
1640
- * @param {object} data.pathParams - data.pathParams
1641
- * @param {string} data.pathParams.address - Adresse à rechercher
1187
+ * @param {import("./EndpointApi.types").ActivitypubSearchData} data - Données envoyées à l'API
1642
1188
  * @returns {Promise<Object>} - Les données de réponse.
1643
1189
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1644
1190
  * @throws {Error} - En cas d'erreur inattendue.
1645
1191
  */
1646
- async activitypubSearch(data = {}) {
1192
+ async activitypubSearch(data) {
1193
+ if (!data || typeof data !== "object") {
1194
+ throw new TypeError("Le paramètre data doit être un objet.");
1195
+ }
1647
1196
  return this.call("ACTIVITYPUB_SEARCH", data);
1648
1197
  }
1649
-
1198
+
1650
1199
  /**
1651
1200
  * Mettre à jour une activité (ActivityPub) : Met à jour une activité ActivityPub avec une action et un payload.
1652
1201
  * Constant : ACTIVITYPUB_LINK
1653
- * @param {object} data - data
1654
- * @param {"undo_follow" | "accept_invitation" | "reject_invitation" | "undo_accept" | "undo_request_follow" | "follow" | "remove_follow" | "accept_follower" | "reject_follower" | "remove_follower" | "remove_invitation"} data.action - data.action
1655
- * @param {string} data.payload - data.payload
1656
- * @param {object} data.actor - data.actor
1657
- * @param {string} data.actor.id - data.actor.id
1658
- * @param {"person"} data.actor.type - data.actor.type
1659
- * @param {string} data.actor.name - data.actor.name
1202
+ * @param {import("./EndpointApi.types").ActivitypubLinkData} data - Données envoyées à l'API
1660
1203
  * @returns {Promise<Object>} - Les données de réponse.
1661
1204
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1662
1205
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1663
1206
  * @throws {Error} - En cas d'erreur inattendue.
1664
1207
  */
1665
- async activitypubLink(data = {}) {
1208
+ async activitypubLink(data) {
1209
+ if (!data || typeof data !== "object") {
1210
+ throw new TypeError("Le paramètre data doit être un objet.");
1211
+ }
1666
1212
  return this.callIsConnected("ACTIVITYPUB_LINK", data);
1667
1213
  }
1668
-
1214
+
1669
1215
  /**
1670
1216
  * Obtenir la liste ActivityPub : Obtient la liste des communautés ActivityPub pour un utilisateur.
1671
1217
  * Constant : ACTIVITYPUB_GET_COMMUNITY
1672
- * @param {object} data.pathParams - data.pathParams
1673
- * @param {string} data.pathParams.userId - ID de l'utilisateur
1674
- * @param {"follows" | "followers"} data.pathParams.type - Type de communauté
1218
+ * @param {import("./EndpointApi.types").ActivitypubGetCommunityData} data - Données envoyées à l'API
1675
1219
  * @returns {Promise<Object>} - Les données de réponse.
1676
1220
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1677
1221
  * @throws {Error} - En cas d'erreur inattendue.
1678
1222
  */
1679
- async activitypubGetCommunity(data = {}) {
1223
+ async activitypubGetCommunity(data) {
1224
+ if (!data || typeof data !== "object") {
1225
+ throw new TypeError("Le paramètre data doit être un objet.");
1226
+ }
1680
1227
  return this.call("ACTIVITYPUB_GET_COMMUNITY", data);
1681
1228
  }
1682
-
1229
+
1683
1230
  /**
1684
1231
  * Récupérer les informations d'un badge : Récupère les détails d’un badge par son ID.
1685
1232
  * Constant : GET_BADGE
1686
- * @param {object} data.pathParams - data.pathParams
1687
- * @param {string} data.pathParams.id - ID du badge
1233
+ * @param {import("./EndpointApi.types").GetBadgeData} data - Données envoyées à l'API
1688
1234
  * @returns {Promise<Object>} - Les données de réponse.
1689
1235
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1690
1236
  * @throws {Error} - En cas d'erreur inattendue.
1691
1237
  */
1692
- async getBadge(data = {}) {
1238
+ async getBadge(data) {
1239
+ if (!data || typeof data !== "object") {
1240
+ throw new TypeError("Le paramètre data doit être un objet.");
1241
+ }
1693
1242
  return this.call("GET_BADGE", data);
1694
1243
  }
1695
-
1244
+
1696
1245
  /**
1697
1246
  * Obtenir la liste des émetteurs de badges : Récupère la liste des émetteurs pour les badges.
1698
1247
  * Constant : GET_EMETTEUR_BADGES
@@ -1700,130 +1249,89 @@ class EndpointApi {
1700
1249
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1701
1250
  * @throws {Error} - En cas d'erreur inattendue.
1702
1251
  */
1703
- async getEmetteurBadges(data = {}) {
1704
- return this.call("GET_EMETTEUR_BADGES", data);
1252
+ async getEmetteurBadges() {
1253
+ return this.call("GET_EMETTEUR_BADGES");
1705
1254
  }
1706
-
1255
+
1707
1256
  /**
1708
1257
  * Créer un badge : Crée un nouveau badge avec des informations détaillées.
1709
1258
  * Constant : ADD_BADGES
1710
- * @param {object} data - data
1711
- * @param {string} data.id - ID
1712
- * @param {"badges"} data.collection - Collection (default: "badges")
1713
- * @param {"badge"} data.key - data.key (default: "badge")
1714
- * @param {object} data.parent - Objet contenant les badges parents (clé = ID). null signifie que les parents ne sont pas modifiés.
1715
- * @param {Object.<string, { type: "badges", name?: string } | any>} data.parent - Clés matching "^[a-f0-9]{24}$"
1716
- * @param {string} data.name - Nom du badge
1717
- * @param {boolean} data.public - Visibilité (true/false) (default: true)
1718
- * @param {Array<string>} data.tags - data.tags
1719
- * @param {boolean} data.isParcours - Est-ce un parcours (true/false)? (default: false)
1720
- * @param {string} data.description - Description
1721
- * @param {object} data.preferences - data.preferences (default: {"isOpenData":true,"isOpenEdition":true})
1722
- * @param {boolean} data.preferences.isOpenData - Open data (true/false) (default: true)
1723
- * @param {boolean} data.preferences.isOpenEdition - Édition ouverte (true/false) (default: true)
1724
- * @param {""} data.scope - data.scope (default: "")
1725
- * @param {object} data.criteria - data.criteria
1726
- * @param {string} data.criteria.narrative - Critères d’obtention
1727
- * @param {object} data.issuer - Objet contenant les émetteurs (clé = ID). null signifie que les émetteurs ne sont pas modifiés.
1728
- * @param {Object.<string, { type: "citoyens" | "organizations" | "projects", name?: string } | any>} data.issuer - Clés matching "^(?:[a-f0-9]{24}|@userId)$"
1259
+ * @param {import("./EndpointApi.types").AddBadgesData} data - Données envoyées à l'API
1729
1260
  * @returns {Promise<Object>} - Les données de réponse.
1730
1261
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1731
1262
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1732
1263
  * @throws {Error} - En cas d'erreur inattendue.
1733
1264
  */
1734
- async addBadges(data = {}) {
1265
+ async addBadges(data) {
1266
+ if (!data || typeof data !== "object") {
1267
+ throw new TypeError("Le paramètre data doit être un objet.");
1268
+ }
1735
1269
  return this.callIsConnected("ADD_BADGES", data);
1736
1270
  }
1737
-
1271
+
1738
1272
  /**
1739
1273
  * Attribuer un badge : Attribue un badge à une ou plusieurs personnes ou entités.
1740
1274
  * Constant : ASSIGN_BADGES
1741
- * @param {object} data - data
1742
- * @param {"badge"} data.key - data.key (default: "badge")
1743
- * @param {"badges"} data.collection - data.collection (default: "badges")
1744
- * @param {string} data.narative - Message/narratif
1745
- * @param {string} data.badgeId - ID du badge
1746
- * @param {object} data.award - Objet contenant les cibles (clé = ID). null signifie que les cibles ne sont pas modifiées.
1747
- * @param {Object.<string, { type: string, name: string } | any>} data.award - Clés matching "^[0-9a-f]{24}$"
1748
- * @param {Array<object>} data.evidences - Preuves
1749
- * @param {""} data.scope - data.scope (default: "")
1275
+ * @param {import("./EndpointApi.types").AssignBadgesData} data - Données envoyées à l'API
1750
1276
  * @returns {Promise<Object>} - Les données de réponse.
1751
1277
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1752
1278
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1753
1279
  * @throws {Error} - En cas d'erreur inattendue.
1754
1280
  */
1755
- async assignBadges(data = {}) {
1281
+ async assignBadges(data) {
1282
+ if (!data || typeof data !== "object") {
1283
+ throw new TypeError("Le paramètre data doit être un objet.");
1284
+ }
1756
1285
  return this.callIsConnected("ASSIGN_BADGES", data);
1757
1286
  }
1758
-
1287
+
1759
1288
  /**
1760
1289
  * Obtenir la liste des événements : Permet de rechercher des événements selon plusieurs critères (dates, nom, type...).
1761
1290
  * Constant : GET_EVENTS
1762
- * @param {object} data - data
1763
- * @param {["events"]} data.searchType - data.searchType (default: ["events"])
1764
- * @param {number} data.indexMin - data.indexMin (default: 0)
1765
- * @param {number} data.indexStep - data.indexStep (default: 100)
1766
- * @param {number} data.startDate - Timestamp de début
1767
- * @param {string} data.startDateUTC - Date de début (UTC)
1768
- * @param {string} data.endDateUTC - Date de fin (UTC)
1769
- * @param {string} data.name - Nom ou terme
1770
- * @param {"workshop" | "competition" | "concert" | "contest" | "conference" | "debate" | "exhibition" | "festival" | "crowdfunding" | "fair" | "course" | "protest" | "market" | "film" | "getTogether" | "meeting" | "spectacle" | "internship" | "stand" | "others"} data.type - Type d’événement
1771
- * @param {object} data.locality - Liste des localités ciblées
1772
- * @param {Object.<string, object | any>} data.locality - Clés matching "^[^\s]+$"
1773
- * @param {boolean} data.count - data.count (default: false)
1774
- * @param {["events"]} data.countType - data.countType (default: ["events"])
1775
- * @param {boolean} data.fediverse - data.fediverse (default: false)
1291
+ * @param {import("./EndpointApi.types").GetEventsData} data - Données envoyées à l'API
1776
1292
  * @returns {Promise<Object>} - Les données de réponse.
1777
1293
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1778
1294
  * @throws {Error} - En cas d'erreur inattendue.
1779
1295
  */
1780
- async getEvents(data = {}) {
1296
+ async getEvents(data) {
1297
+ if (!data || typeof data !== "object") {
1298
+ throw new TypeError("Le paramètre data doit être un objet.");
1299
+ }
1781
1300
  return this.call("GET_EVENTS", data);
1782
1301
  }
1783
-
1302
+
1784
1303
  /**
1785
1304
  * Partager un événement : Partage un événement avec d’autres utilisateurs ou entités.
1786
1305
  * Constant : SHARE_EVENTS
1787
- * @param {object} data - data
1788
- * @param {string} data.parentId - ID de l’événement à partager
1789
- * @param {"events"} data.parentType - Type de l’entité parent (events) (default: "events")
1790
- * @param {string} data.childId - ID de l'entité partageante
1791
- * @param {"citoyens" | "projects" | "organizations"} data.childType - Type de l'entité partageante (default: "citoyens")
1792
- * @param {"share"} data.connectType - Type de connexion (share) (default: "share")
1793
- * @param {string} data.comment - Commentaire de partage
1306
+ * @param {import("./EndpointApi.types").ShareEventsData} data - Données envoyées à l'API
1794
1307
  * @returns {Promise<Object>} - Les données de réponse.
1795
1308
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1796
1309
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1797
1310
  * @throws {Error} - En cas d'erreur inattendue.
1798
1311
  */
1799
- async shareEvents(data = {}) {
1312
+ async shareEvents(data) {
1313
+ if (!data || typeof data !== "object") {
1314
+ throw new TypeError("Le paramètre data doit être un objet.");
1315
+ }
1800
1316
  return this.callIsConnected("SHARE_EVENTS", data);
1801
1317
  }
1802
-
1318
+
1803
1319
  /**
1804
1320
  * Inviter des participants à un événement : Invite plusieurs utilisateurs ou entités à participer à un événement.
1805
1321
  * Constant : INVITE_EVENT
1806
- * @param {object} data - data
1807
- * @param {string} data.parentId - ID de l'entité parente
1808
- * @param {"citoyens" | "projects" | "organizations"} data.parentType - Type de l'entité parente (default: "citoyens")
1809
- * @param {object} data.listInvite - Liste des citoyens invités
1810
- * @param {object} data.listInvite.citoyens - data.listInvite.citoyens
1811
- * @param {Object.<string, { name: string, isAdmin?: "" | "admin", roles?: Array<string> } | any>} data.listInvite.citoyens - Clés matching "^[0-9a-f]{24}$"
1812
- * @param {object} data.listInvite.projects - data.listInvite.projects
1813
- * @param {Object.<string, { name: string, isAdmin?: "" | "admin", roles?: Array<string> } | any>} data.listInvite.projects - Clés matching "^[0-9a-f]{24}$"
1814
- * @param {object} data.listInvite.organizations - data.listInvite.organizations
1815
- * @param {Object.<string, { name: string, isAdmin?: "" | "admin", roles?: Array<string> } | any>} data.listInvite.organizations - Clés matching "^[0-9a-f]{24}$"
1816
- * @param {object} data.listInvite.invites - data.listInvite.invites
1817
- * @param {Object.<string, { name: string, email: string, msg?: string, isAdmin?: "" | "admin", roles?: Array<string> } | any>} data.listInvite.invites - Clés matching "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
1322
+ * @param {import("./EndpointApi.types").InviteEventData} data - Données envoyées à l'API
1818
1323
  * @returns {Promise<Object>} - Les données de réponse.
1819
1324
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1820
1325
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1821
1326
  * @throws {Error} - En cas d'erreur inattendue.
1822
1327
  */
1823
- async inviteEvent(data = {}) {
1328
+ async inviteEvent(data) {
1329
+ if (!data || typeof data !== "object") {
1330
+ throw new TypeError("Le paramètre data doit être un objet.");
1331
+ }
1824
1332
  return this.callIsConnected("INVITE_EVENT", data);
1825
1333
  }
1826
-
1334
+
1827
1335
  }
1828
1336
 
1829
1337
  export default EndpointApi;