@communecter/cocolight-api-client 1.0.20 → 1.0.21

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,32 +29,14 @@ 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.");
@@ -69,1758 +47,1299 @@ class EndpointApi {
69
47
  /**
70
48
  * Enregistrement d'un utilisateur : Permet d’enregistrer un nouvel utilisateur avec ses informations personnelles.
71
49
  * 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)
50
+ * @param {import("./EndpointApi.types").PersonRegisterData} data - Données envoyées à l'API
81
51
  * @returns {Promise<Object>} - Les données de réponse.
82
52
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
83
53
  * @throws {Error} - En cas d'erreur inattendue.
84
54
  */
85
- async personRegister(data = {}) {
55
+ async personRegister(data) {
56
+ if (!data || typeof data !== "object") {
57
+ throw new TypeError("Le paramètre data doit être un objet.");
58
+ }
86
59
  return this.callNoConnected("PERSON_REGISTER", data);
87
60
  }
88
61
 
89
62
  /**
90
63
  * Authentification : Permet de se connecter en utilisant une adresse email et un mot de passe.
91
64
  * 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
65
+ * @param {import("./EndpointApi.types").AuthenticateUrlData} data - Données envoyées à l'API
95
66
  * @returns {Promise<Object>} - Les données de réponse.
96
67
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
97
68
  * @throws {Error} - En cas d'erreur inattendue.
98
69
  */
99
- async authenticateUrl(data = {}) {
70
+ async authenticateUrl(data) {
71
+ if (!data || typeof data !== "object") {
72
+ throw new TypeError("Le paramètre data doit être un objet.");
73
+ }
100
74
  return this.callNoConnected("AUTHENTICATE_URL", data);
101
75
  }
102
76
 
103
77
  /**
104
78
  * Rafraîchir un token : Permet de rafraîchir un token d'accès expiré en utilisant un token de rafraîchissement.
105
79
  * 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
80
+ * @param {import("./EndpointApi.types").RefreshTokenUrlData} data - Données envoyées à l'API
108
81
  * @returns {Promise<Object>} - Les données de réponse.
109
82
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
110
83
  * @throws {Error} - En cas d'erreur inattendue.
111
84
  */
112
- async refreshTokenUrl(data = {}) {
85
+ async refreshTokenUrl(data) {
86
+ if (!data || typeof data !== "object") {
87
+ throw new TypeError("Le paramètre data doit être un objet.");
88
+ }
113
89
  return this.call("REFRESH_TOKEN_URL", data);
114
90
  }
115
91
 
116
92
  /**
117
93
  * Récupérer les informations utilisateur : Récupère les informations du profil utilisateur pour un token donné.
118
94
  * Constant : ME_INFO_URL
95
+ * @param {Object} [data] - Données envoyées à l'API (optionnel)
119
96
  * @returns {Promise<Object>} - Les données de réponse.
120
97
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
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 = {}) {
101
+ async meInfoUrl(data) {
102
+ if (!data || typeof data !== "object") {
103
+ throw new TypeError("Le paramètre data doit être un objet.");
104
+ }
125
105
  return this.callIsConnected("ME_INFO_URL", data);
126
106
  }
127
107
 
128
108
  /**
129
109
  * Récupération de mot de passe : Envoie un email pour récupérer le mot de passe.
130
110
  * 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")
111
+ * @param {import("./EndpointApi.types").PasswordRecoveryData} data - Données envoyées à l'API
134
112
  * @returns {Promise<Object>} - Les données de réponse.
135
113
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
136
114
  * @throws {Error} - En cas d'erreur inattendue.
137
115
  */
138
- async passwordRecovery(data = {}) {
116
+ async passwordRecovery(data) {
117
+ if (!data || typeof data !== "object") {
118
+ throw new TypeError("Le paramètre data doit être un objet.");
119
+ }
139
120
  return this.callNoConnected("PASSWORD_RECOVERY", data);
140
121
  }
141
122
 
142
123
  /**
143
124
  * Échange de token avec un autre serveur : Permet de se connecter à un autre serveur Communecter en échangeant un token.
144
125
  * Constant : SERVER_EXCHANGE_TOKEN
145
- * @param {object} data - data
146
- * @param {string} data.serverUrl - URL du serveur distant
126
+ * @param {import("./EndpointApi.types").ServerExchangeTokenData} data - Données envoyées à l'API
147
127
  * @returns {Promise<Object>} - Les données de réponse.
148
128
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
149
129
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
150
130
  * @throws {Error} - En cas d'erreur inattendue.
151
131
  */
152
- async serverExchangeToken(data = {}) {
132
+ async serverExchangeToken(data) {
133
+ if (!data || typeof data !== "object") {
134
+ throw new TypeError("Le paramètre data doit être un objet.");
135
+ }
153
136
  return this.callIsConnected("SERVER_EXCHANGE_TOKEN", data);
154
137
  }
155
138
 
156
139
  /**
157
140
  * Changer le mot de passe : Permet de changer le mot de passe d'un utilisateur.
158
141
  * 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: "")
142
+ * @param {import("./EndpointApi.types").ChangePasswordData} data - Données envoyées à l'API
166
143
  * @returns {Promise<Object>} - Les données de réponse.
167
144
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
168
145
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
169
146
  * @throws {Error} - En cas d'erreur inattendue.
170
147
  */
171
- async changePassword(data = {}) {
148
+ async changePassword(data) {
149
+ if (!data || typeof data !== "object") {
150
+ throw new TypeError("Le paramètre data doit être un objet.");
151
+ }
172
152
  return this.callIsConnected("CHANGE_PASSWORD", data);
173
153
  }
174
154
 
175
155
  /**
176
156
  * Supprimer un compte : Permet de supprimer un compte utilisateur.
177
157
  * 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")
158
+ * @param {import("./EndpointApi.types").DeleteAccountData} data - Données envoyées à l'API
182
159
  * @returns {Promise<Object>} - Les données de réponse.
183
160
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
184
161
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
185
162
  * @throws {Error} - En cas d'erreur inattendue.
186
163
  */
187
- async deleteAccount(data = {}) {
164
+ async deleteAccount(data) {
165
+ if (!data || typeof data !== "object") {
166
+ throw new TypeError("Le paramètre data doit être un objet.");
167
+ }
188
168
  return this.callIsConnected("DELETE_ACCOUNT", data);
189
169
  }
190
170
 
191
171
  /**
192
172
  * Mettre à jour les paramètres d'un élément : Mise à jour des paramètres spécifiques d'un élément.
193
173
  * 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
174
+ * @param {import("./EndpointApi.types").UpdateSettingsData} data - Données envoyées à l'API
199
175
  * @returns {Promise<Object>} - Les données de réponse.
200
176
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
201
177
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
202
178
  * @throws {Error} - En cas d'erreur inattendue.
203
179
  */
204
- async updateSettings(data = {}) {
180
+ async updateSettings(data) {
181
+ if (!data || typeof data !== "object") {
182
+ throw new TypeError("Le paramètre data doit être un objet.");
183
+ }
205
184
  return this.callIsConnected("UPDATE_SETTINGS", data);
206
185
  }
207
186
 
208
187
  /**
209
188
  * Mettre à jour la description d'un élément : Permet de mettre à jour la description courte et complète d'un élément.
210
189
  * 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
190
+ * @param {import("./EndpointApi.types").UpdateBlockDescriptionData} data - Données envoyées à l'API
219
191
  * @returns {Promise<Object>} - Les données de réponse.
220
192
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
221
193
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
222
194
  * @throws {Error} - En cas d'erreur inattendue.
223
195
  */
224
- async updateBlockDescription(data = {}) {
196
+ async updateBlockDescription(data) {
197
+ if (!data || typeof data !== "object") {
198
+ throw new TypeError("Le paramètre data doit être un objet.");
199
+ }
225
200
  return this.callIsConnected("UPDATE_BLOCK_DESCRIPTION", data);
226
201
  }
227
202
 
228
203
  /**
229
204
  * 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
205
  * 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: "")
206
+ * @param {import("./EndpointApi.types").UpdateBlockInfoData} data - Données envoyées à l'API
236
207
  * @returns {Promise<Object>} - Les données de réponse.
237
208
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
238
209
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
239
210
  * @throws {Error} - En cas d'erreur inattendue.
240
211
  */
241
- async updateBlockInfo(data = {}) {
212
+ async updateBlockInfo(data) {
213
+ if (!data || typeof data !== "object") {
214
+ throw new TypeError("Le paramètre data doit être un objet.");
215
+ }
242
216
  return this.callIsConnected("UPDATE_BLOCK_INFO", data);
243
217
  }
244
218
 
245
219
  /**
246
220
  * 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
221
  * 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
222
+ * @param {import("./EndpointApi.types").UpdateBlockSocialData} data - Données envoyées à l'API
262
223
  * @returns {Promise<Object>} - Les données de réponse.
263
224
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
264
225
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
265
226
  * @throws {Error} - En cas d'erreur inattendue.
266
227
  */
267
- async updateBlockSocial(data = {}) {
228
+ async updateBlockSocial(data) {
229
+ if (!data || typeof data !== "object") {
230
+ throw new TypeError("Le paramètre data doit être un objet.");
231
+ }
268
232
  return this.callIsConnected("UPDATE_BLOCK_SOCIAL", data);
269
233
  }
270
234
 
271
235
  /**
272
236
  * 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
237
  * 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
238
+ * @param {import("./EndpointApi.types").UpdateBlockLocalityData} data - Données envoyées à l'API
301
239
  * @returns {Promise<Object>} - Les données de réponse.
302
240
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
303
241
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
304
242
  * @throws {Error} - En cas d'erreur inattendue.
305
243
  */
306
- async updateBlockLocality(data = {}) {
244
+ async updateBlockLocality(data) {
245
+ if (!data || typeof data !== "object") {
246
+ throw new TypeError("Le paramètre data doit être un objet.");
247
+ }
307
248
  return this.callIsConnected("UPDATE_BLOCK_LOCALITY", data);
308
249
  }
309
250
 
310
251
  /**
311
252
  * Mettre à jour le slug d'un élément : Permet de mettre à jour le slug pour une URL simplifiée.
312
253
  * 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
254
+ * @param {import("./EndpointApi.types").UpdateBlockSlugData} data - Données envoyées à l'API
319
255
  * @returns {Promise<Object>} - Les données de réponse.
320
256
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
321
257
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
322
258
  * @throws {Error} - En cas d'erreur inattendue.
323
259
  */
324
- async updateBlockSlug(data = {}) {
260
+ async updateBlockSlug(data) {
261
+ if (!data || typeof data !== "object") {
262
+ throw new TypeError("Le paramètre data doit être un objet.");
263
+ }
325
264
  return this.callIsConnected("UPDATE_BLOCK_SLUG", data);
326
265
  }
327
266
 
328
267
  /**
329
268
  * Vérifier l'état d'une URL : Vérifie si une URL (slug) est valide ou disponible.
330
269
  * 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
270
+ * @param {import("./EndpointApi.types").CheckData} data - Données envoyées à l'API
336
271
  * @returns {Promise<Object>} - Les données de réponse.
337
272
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
338
273
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
339
274
  * @throws {Error} - En cas d'erreur inattendue.
340
275
  */
341
- async check(data = {}) {
276
+ async check(data) {
277
+ if (!data || typeof data !== "object") {
278
+ throw new TypeError("Le paramètre data doit être un objet.");
279
+ }
342
280
  return this.callIsConnected("CHECK", data);
343
281
  }
344
282
 
345
283
  /**
346
284
  * Mettre à jour l'image de profil : Permet de mettre à jour l'image de profil d'un utilisateur ou d'une entité.
347
285
  * 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é
286
+ * @param {import("./EndpointApi.types").ProfilImageData} data - Données envoyées à l'API
353
287
  * @returns {Promise<Object>} - Les données de réponse.
354
288
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
355
289
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
356
290
  * @throws {Error} - En cas d'erreur inattendue.
357
291
  */
358
- async profilImage(data = {}) {
292
+ async profilImage(data) {
293
+ if (!data || typeof data !== "object") {
294
+ throw new TypeError("Le paramètre data doit être un objet.");
295
+ }
359
296
  return this.callIsConnected("PROFIL_IMAGE", data);
360
297
  }
361
298
 
362
299
  /**
363
300
  * 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
301
  * 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é
302
+ * @param {import("./EndpointApi.types").GetElementsAboutData} data - Données envoyées à l'API
370
303
  * @returns {Promise<Object>} - Les données de réponse.
371
304
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
372
305
  * @throws {Error} - En cas d'erreur inattendue.
373
306
  */
374
- async getElementsAbout(data = {}) {
307
+ async getElementsAbout(data) {
308
+ if (!data || typeof data !== "object") {
309
+ throw new TypeError("Le paramètre data doit être un objet.");
310
+ }
375
311
  return this.call("GET_ELEMENTS_ABOUT", data);
376
312
  }
377
313
 
378
314
  /**
379
315
  * Gérer des connexions multiples : Permet d’inviter ou de connecter plusieurs utilisateurs en même temps à une entité.
380
316
  * 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)$"
317
+ * @param {import("./EndpointApi.types").MulticonnectData} data - Données envoyées à l'API
386
318
  * @returns {Promise<Object>} - Les données de réponse.
387
319
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
388
320
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
389
321
  * @throws {Error} - En cas d'erreur inattendue.
390
322
  */
391
- async multiconnect(data = {}) {
323
+ async multiconnect(data) {
324
+ if (!data || typeof data !== "object") {
325
+ throw new TypeError("Le paramètre data doit être un objet.");
326
+ }
392
327
  return this.callIsConnected("MULTICONNECT", data);
393
328
  }
394
329
 
395
330
  /**
396
331
  * Récupérer les actualités : Récupère la liste d’actualités selon plusieurs critères.
397
332
  * 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)
333
+ * @param {import("./EndpointApi.types").GetNewsData} data - Données envoyées à l'API
407
334
  * @returns {Promise<Object>} - Les données de réponse.
408
335
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
409
336
  * @throws {Error} - En cas d'erreur inattendue.
410
337
  */
411
- async getNews(data = {}) {
338
+ async getNews(data) {
339
+ if (!data || typeof data !== "object") {
340
+ throw new TypeError("Le paramètre data doit être un objet.");
341
+ }
412
342
  return this.call("GET_NEWS", data);
413
343
  }
414
344
 
415
345
  /**
416
346
  * Récupérer des actualités par IDs : Récupère des actualités à partir d’une liste d’identifiants.
417
347
  * 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
348
+ * @param {import("./EndpointApi.types").GetNewsByIdData} data - Données envoyées à l'API
420
349
  * @returns {Promise<Object>} - Les données de réponse.
421
350
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
422
351
  * @throws {Error} - En cas d'erreur inattendue.
423
352
  */
424
- async getNewsById(data = {}) {
353
+ async getNewsById(data) {
354
+ if (!data || typeof data !== "object") {
355
+ throw new TypeError("Le paramètre data doit être un objet.");
356
+ }
425
357
  return this.call("GET_NEWS_BY_ID", data);
426
358
  }
427
359
 
428
360
  /**
429
361
  * Ajouter une actualité : Ajoute une nouvelle actualité.
430
362
  * 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.
363
+ * @param {import("./EndpointApi.types").AddNewsData} data - Données envoyées à l'API
447
364
  * @returns {Promise<Object>} - Les données de réponse.
448
365
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
449
366
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
450
367
  * @throws {Error} - En cas d'erreur inattendue.
451
368
  */
452
- async addNews(data = {}) {
369
+ async addNews(data) {
370
+ if (!data || typeof data !== "object") {
371
+ throw new TypeError("Le paramètre data doit être un objet.");
372
+ }
453
373
  return this.callIsConnected("ADD_NEWS", data);
454
374
  }
455
375
 
456
376
  /**
457
377
  * Ajouter une image à une actualité : Ajoute une images à une actualité.
458
378
  * 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
379
+ * @param {import("./EndpointApi.types").AddImageNewsData} data - Données envoyées à l'API
464
380
  * @returns {Promise<Object>} - Les données de réponse.
465
381
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
466
382
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
467
383
  * @throws {Error} - En cas d'erreur inattendue.
468
384
  */
469
- async addImageNews(data = {}) {
385
+ async addImageNews(data) {
386
+ if (!data || typeof data !== "object") {
387
+ throw new TypeError("Le paramètre data doit être un objet.");
388
+ }
470
389
  return this.callIsConnected("ADD_IMAGE_NEWS", data);
471
390
  }
472
391
 
473
392
  /**
474
393
  * Ajouter un fichier à une actualité : Ajoute un fichier à une actualité.
475
394
  * 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
395
+ * @param {import("./EndpointApi.types").AddFileNewsData} data - Données envoyées à l'API
481
396
  * @returns {Promise<Object>} - Les données de réponse.
482
397
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
483
398
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
484
399
  * @throws {Error} - En cas d'erreur inattendue.
485
400
  */
486
- async addFileNews(data = {}) {
401
+ async addFileNews(data) {
402
+ if (!data || typeof data !== "object") {
403
+ throw new TypeError("Le paramètre data doit être un objet.");
404
+ }
487
405
  return this.callIsConnected("ADD_FILE_NEWS", data);
488
406
  }
489
407
 
490
408
  /**
491
409
  * Supprimer une actualité : Supprime une actualité existante.
492
410
  * 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
411
+ * @param {import("./EndpointApi.types").DeleteNewsData} data - Données envoyées à l'API
497
412
  * @returns {Promise<Object>} - Les données de réponse.
498
413
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
499
414
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
500
415
  * @throws {Error} - En cas d'erreur inattendue.
501
416
  */
502
- async deleteNews(data = {}) {
417
+ async deleteNews(data) {
418
+ if (!data || typeof data !== "object") {
419
+ throw new TypeError("Le paramètre data doit être un objet.");
420
+ }
503
421
  return this.callIsConnected("DELETE_NEWS", data);
504
422
  }
505
423
 
506
424
  /**
507
425
  * Mettre à jour une actualité : Met à jour le contenu d’une actualité existante.
508
426
  * 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.
427
+ * @param {import("./EndpointApi.types").UpdateNewsData} data - Données envoyées à l'API
525
428
  * @returns {Promise<Object>} - Les données de réponse.
526
429
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
527
430
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
528
431
  * @throws {Error} - En cas d'erreur inattendue.
529
432
  */
530
- async updateNews(data = {}) {
433
+ async updateNews(data) {
434
+ if (!data || typeof data !== "object") {
435
+ throw new TypeError("Le paramètre data doit être un objet.");
436
+ }
531
437
  return this.callIsConnected("UPDATE_NEWS", data);
532
438
  }
533
439
 
534
440
  /**
535
441
  * Partager une actualité : Partage une actualité avec une entité ou un utilisateur.
536
442
  * 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
443
+ * @param {import("./EndpointApi.types").ShareNewsData} data - Données envoyées à l'API
544
444
  * @returns {Promise<Object>} - Les données de réponse.
545
445
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
546
446
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
547
447
  * @throws {Error} - En cas d'erreur inattendue.
548
448
  */
549
- async shareNews(data = {}) {
449
+ async shareNews(data) {
450
+ if (!data || typeof data !== "object") {
451
+ throw new TypeError("Le paramètre data doit être un objet.");
452
+ }
550
453
  return this.callIsConnected("SHARE_NEWS", data);
551
454
  }
552
455
 
553
456
  /**
554
457
  * Récupérer les commentaires : Récupère les commentaires d’un élément.
555
458
  * 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
459
+ * @param {import("./EndpointApi.types").GetCommentsData} data - Données envoyées à l'API
559
460
  * @returns {Promise<Object>} - Les données de réponse.
560
461
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
561
462
  * @throws {Error} - En cas d'erreur inattendue.
562
463
  */
563
- async getComments(data = {}) {
464
+ async getComments(data) {
465
+ if (!data || typeof data !== "object") {
466
+ throw new TypeError("Le paramètre data doit être un objet.");
467
+ }
564
468
  return this.call("GET_COMMENTS", data);
565
469
  }
566
470
 
567
471
  /**
568
472
  * Ajouter un commentaire : Ajoute un commentaire à une actualité ou autre contexte.
569
473
  * 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
474
+ * @param {import("./EndpointApi.types").AddCommentsData} data - Données envoyées à l'API
578
475
  * @returns {Promise<Object>} - Les données de réponse.
579
476
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
580
477
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
581
478
  * @throws {Error} - En cas d'erreur inattendue.
582
479
  */
583
- async addComments(data = {}) {
480
+ async addComments(data) {
481
+ if (!data || typeof data !== "object") {
482
+ throw new TypeError("Le paramètre data doit être un objet.");
483
+ }
584
484
  return this.callIsConnected("ADD_COMMENTS", data);
585
485
  }
586
486
 
587
487
  /**
588
488
  * Supprimer un commentaire : Supprime un commentaire existant.
589
489
  * Constant : DELETE_COMMENTS
590
- * @param {object} data.pathParams - data.pathParams
591
- * @param {string} data.pathParams.id - ID du commentaire à supprimer
490
+ * @param {import("./EndpointApi.types").DeleteCommentsData} data - Données envoyées à l'API
592
491
  * @returns {Promise<Object>} - Les données de réponse.
593
492
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
594
493
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
595
494
  * @throws {Error} - En cas d'erreur inattendue.
596
495
  */
597
- async deleteComments(data = {}) {
496
+ async deleteComments(data) {
497
+ if (!data || typeof data !== "object") {
498
+ throw new TypeError("Le paramètre data doit être un objet.");
499
+ }
598
500
  return this.callIsConnected("DELETE_COMMENTS", data);
599
501
  }
600
502
 
601
503
  /**
602
504
  * Mettre à jour un commentaire : Met à jour le contenu d’un commentaire.
603
505
  * 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
506
+ * @param {import("./EndpointApi.types").UpdateCommentsData} data - Données envoyées à l'API
609
507
  * @returns {Promise<Object>} - Les données de réponse.
610
508
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
611
509
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
612
510
  * @throws {Error} - En cas d'erreur inattendue.
613
511
  */
614
- async updateComments(data = {}) {
512
+ async updateComments(data) {
513
+ if (!data || typeof data !== "object") {
514
+ throw new TypeError("Le paramètre data doit être un objet.");
515
+ }
615
516
  return this.callIsConnected("UPDATE_COMMENTS", data);
616
517
  }
617
518
 
618
519
  /**
619
520
  * Rechercher des tags : Recherche des tags correspondant à un mot-clé.
620
521
  * Constant : SEARCH_TAGS
621
- * @param {object} data.pathParams - data.pathParams
622
- * @param {string} data.pathParams.q - Mot-clé de recherche
522
+ * @param {import("./EndpointApi.types").SearchTagsData} data - Données envoyées à l'API
623
523
  * @returns {Promise<Object>} - Les données de réponse.
624
524
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
625
525
  * @throws {Error} - En cas d'erreur inattendue.
626
526
  */
627
- async searchTags(data = {}) {
527
+ async searchTags(data) {
528
+ if (!data || typeof data !== "object") {
529
+ throw new TypeError("Le paramètre data doit être un objet.");
530
+ }
628
531
  return this.call("SEARCH_TAGS", data);
629
532
  }
630
533
 
631
534
  /**
632
535
  * Afficher les votes d'une actualité : Récupère la liste des votes (like, love, etc.) sur une actualité.
633
536
  * 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
537
+ * @param {import("./EndpointApi.types").ShowVoteData} data - Données envoyées à l'API
637
538
  * @returns {Promise<Object>} - Les données de réponse.
638
539
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
639
540
  * @throws {Error} - En cas d'erreur inattendue.
640
541
  */
641
- async showVote(data = {}) {
542
+ async showVote(data) {
543
+ if (!data || typeof data !== "object") {
544
+ throw new TypeError("Le paramètre data doit être un objet.");
545
+ }
642
546
  return this.call("SHOW_VOTE", data);
643
547
  }
644
548
 
645
549
  /**
646
550
  * Recherche globale avec autocomplétion : Effectue une recherche globale avec possibilité d’autocomplétion.
647
551
  * 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 = {}) {
552
+ * @param {import("./EndpointApi.types").GlobalAutocompleteData} data - Données envoyées à l'API
553
+ * @returns {Promise<Object>} - Les données de réponse.
554
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
555
+ * @throws {Error} - En cas d'erreur inattendue.
556
+ */
557
+ async globalAutocomplete(data) {
558
+ if (!data || typeof data !== "object") {
559
+ throw new TypeError("Le paramètre data doit être un objet.");
560
+ }
669
561
  return this.call("GLOBAL_AUTOCOMPLETE", data);
670
562
  }
671
563
 
672
564
  /**
673
565
  * Recherche de villes avec autocomplétion : Recherche des villes en fonction d’un nom, autocomplétion rapide.
674
566
  * 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
567
+ * @param {import("./EndpointApi.types").CityAutocompleteData} data - Données envoyées à l'API
682
568
  * @returns {Promise<Object>} - Les données de réponse.
683
569
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
684
570
  * @throws {Error} - En cas d'erreur inattendue.
685
571
  */
686
- async cityAutocomplete(data = {}) {
572
+ async cityAutocomplete(data) {
573
+ if (!data || typeof data !== "object") {
574
+ throw new TypeError("Le paramètre data doit être un objet.");
575
+ }
687
576
  return this.call("CITY_AUTOCOMPLETE", data);
688
577
  }
689
578
 
690
579
  /**
691
580
  * Suggestions d'entrée : Fournit des suggestions basées sur le nom recherché, etc.
692
581
  * 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)
582
+ * @param {import("./EndpointApi.types").SuggestionInputData} data - Données envoyées à l'API
698
583
  * @returns {Promise<Object>} - Les données de réponse.
699
584
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
700
585
  * @throws {Error} - En cas d'erreur inattendue.
701
586
  */
702
- async suggestionInput(data = {}) {
587
+ async suggestionInput(data) {
588
+ if (!data || typeof data !== "object") {
589
+ throw new TypeError("Le paramètre data doit être un objet.");
590
+ }
703
591
  return this.call("SUGGESTION_INPUT", data);
704
592
  }
705
593
 
706
594
  /**
707
595
  * Récupérer les projets non administrables : Récupère les projets accessibles sans droits d'administration.
708
596
  * 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 = {}) {
597
+ * @param {import("./EndpointApi.types").GetProjectsNoAdminData} data - Données envoyées à l'API
598
+ * @returns {Promise<Object>} - Les données de réponse.
599
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
600
+ * @throws {Error} - En cas d'erreur inattendue.
601
+ */
602
+ async getProjectsNoAdmin(data) {
603
+ if (!data || typeof data !== "object") {
604
+ throw new TypeError("Le paramètre data doit être un objet.");
605
+ }
729
606
  return this.call("GET_PROJECTS_NO_ADMIN", data);
730
607
  }
731
608
 
732
609
  /**
733
610
  * Récupérer les projets administrables : Récupère les projets pour lesquels l'utilisateur a des droits d'administration.
734
611
  * 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é
612
+ * @param {import("./EndpointApi.types").GetProjectsAdminData} data - Données envoyées à l'API
753
613
  * @returns {Promise<Object>} - Les données de réponse.
754
614
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
755
615
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
756
616
  * @throws {Error} - En cas d'erreur inattendue.
757
617
  */
758
- async getProjectsAdmin(data = {}) {
618
+ async getProjectsAdmin(data) {
619
+ if (!data || typeof data !== "object") {
620
+ throw new TypeError("Le paramètre data doit être un objet.");
621
+ }
759
622
  return this.callIsConnected("GET_PROJECTS_ADMIN", data);
760
623
  }
761
624
 
762
625
  /**
763
626
  * Récupérer les POIs non administrables : Récupère la liste des POIs accessibles sans droits d'administration.
764
627
  * 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)
628
+ * @param {import("./EndpointApi.types").GetPoisNoAdminData} data - Données envoyées à l'API
778
629
  * @returns {Promise<Object>} - Les données de réponse.
779
630
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
780
631
  * @throws {Error} - En cas d'erreur inattendue.
781
632
  */
782
- async getPoisNoAdmin(data = {}) {
633
+ async getPoisNoAdmin(data) {
634
+ if (!data || typeof data !== "object") {
635
+ throw new TypeError("Le paramètre data doit être un objet.");
636
+ }
783
637
  return this.call("GET_POIS_NO_ADMIN", data);
784
638
  }
785
639
 
786
640
  /**
787
641
  * Récupérer les POIs administrables : Récupère la liste des POIs administrables par l’utilisateur.
788
642
  * 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é
643
+ * @param {import("./EndpointApi.types").GetPoisAdminData} data - Données envoyées à l'API
805
644
  * @returns {Promise<Object>} - Les données de réponse.
806
645
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
807
646
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
808
647
  * @throws {Error} - En cas d'erreur inattendue.
809
648
  */
810
- async getPoisAdmin(data = {}) {
649
+ async getPoisAdmin(data) {
650
+ if (!data || typeof data !== "object") {
651
+ throw new TypeError("Le paramètre data doit être un objet.");
652
+ }
811
653
  return this.callIsConnected("GET_POIS_ADMIN", data);
812
654
  }
813
655
 
814
656
  /**
815
657
  * Récupérer les organisations non administrables : Récupère la liste des organisations auxquelles l’utilisateur appartient sans les administrer.
816
658
  * 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)
659
+ * @param {import("./EndpointApi.types").GetOrganizationsNoAdminData} data - Données envoyées à l'API
830
660
  * @returns {Promise<Object>} - Les données de réponse.
831
661
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
832
662
  * @throws {Error} - En cas d'erreur inattendue.
833
663
  */
834
- async getOrganizationsNoAdmin(data = {}) {
664
+ async getOrganizationsNoAdmin(data) {
665
+ if (!data || typeof data !== "object") {
666
+ throw new TypeError("Le paramètre data doit être un objet.");
667
+ }
835
668
  return this.call("GET_ORGANIZATIONS_NO_ADMIN", data);
836
669
  }
837
670
 
838
671
  /**
839
672
  * Récupérer les organisations administrables : Récupère les organisations administrées par l’utilisateur.
840
673
  * 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é
674
+ * @param {import("./EndpointApi.types").GetOrganizationsAdminData} data - Données envoyées à l'API
857
675
  * @returns {Promise<Object>} - Les données de réponse.
858
676
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
859
677
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
860
678
  * @throws {Error} - En cas d'erreur inattendue.
861
679
  */
862
- async getOrganizationsAdmin(data = {}) {
680
+ async getOrganizationsAdmin(data) {
681
+ if (!data || typeof data !== "object") {
682
+ throw new TypeError("Le paramètre data doit être un objet.");
683
+ }
863
684
  return this.callIsConnected("GET_ORGANIZATIONS_ADMIN", data);
864
685
  }
865
686
 
866
687
  /**
867
688
  * Récupérer les membres non administrables : Récupère les membres d’une organisation sans droits d’admin.
868
689
  * 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)
690
+ * @param {import("./EndpointApi.types").GetMembersNoAdminData} data - Données envoyées à l'API
882
691
  * @returns {Promise<Object>} - Les données de réponse.
883
692
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
884
693
  * @throws {Error} - En cas d'erreur inattendue.
885
694
  */
886
- async getMembersNoAdmin(data = {}) {
695
+ async getMembersNoAdmin(data) {
696
+ if (!data || typeof data !== "object") {
697
+ throw new TypeError("Le paramètre data doit être un objet.");
698
+ }
887
699
  return this.call("GET_MEMBERS_NO_ADMIN", data);
888
700
  }
889
701
 
890
702
  /**
891
703
  * Récupérer les membres administrables : Récupère les membres d’une organisation administrée par l’utilisateur.
892
704
  * 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
705
+ * @param {import("./EndpointApi.types").GetMembersAdminData} data - Données envoyées à l'API
908
706
  * @returns {Promise<Object>} - Les données de réponse.
909
707
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
910
708
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
911
709
  * @throws {Error} - En cas d'erreur inattendue.
912
710
  */
913
- async getMembersAdmin(data = {}) {
711
+ async getMembersAdmin(data) {
712
+ if (!data || typeof data !== "object") {
713
+ throw new TypeError("Le paramètre data doit être un objet.");
714
+ }
914
715
  return this.callIsConnected("GET_MEMBERS_ADMIN", data);
915
716
  }
916
717
 
917
718
  /**
918
719
  * Récupérer les amis administrables : Récupère les amis administrée par l’utilisateur.
919
720
  * 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")
721
+ * @param {import("./EndpointApi.types").GetFriendsAdminData} data - Données envoyées à l'API
935
722
  * @returns {Promise<Object>} - Les données de réponse.
936
723
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
937
724
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
938
725
  * @throws {Error} - En cas d'erreur inattendue.
939
726
  */
940
- async getFriendsAdmin(data = {}) {
727
+ async getFriendsAdmin(data) {
728
+ if (!data || typeof data !== "object") {
729
+ throw new TypeError("Le paramètre data doit être un objet.");
730
+ }
941
731
  return this.callIsConnected("GET_FRIENDS_ADMIN", data);
942
732
  }
943
733
 
944
734
  /**
945
735
  * Récupérer les suivis non administrables : Liste les entités suivies sans droits d’admin.
946
736
  * 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)
737
+ * @param {import("./EndpointApi.types").GetSubscriptionsData} data - Données envoyées à l'API
960
738
  * @returns {Promise<Object>} - Les données de réponse.
961
739
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
962
740
  * @throws {Error} - En cas d'erreur inattendue.
963
741
  */
964
- async getSubscriptions(data = {}) {
742
+ async getSubscriptions(data) {
743
+ if (!data || typeof data !== "object") {
744
+ throw new TypeError("Le paramètre data doit être un objet.");
745
+ }
965
746
  return this.call("GET_SUBSCRIPTIONS", data);
966
747
  }
967
748
 
968
749
  /**
969
750
  * Récupérer les suivis administrables : Liste les entités suivies par l’utilisateur, sur lesquelles il est admin.
970
751
  * 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")
752
+ * @param {import("./EndpointApi.types").GetSubscriptionsAdminData} data - Données envoyées à l'API
986
753
  * @returns {Promise<Object>} - Les données de réponse.
987
754
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
988
755
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
989
756
  * @throws {Error} - En cas d'erreur inattendue.
990
757
  */
991
- async getSubscriptionsAdmin(data = {}) {
758
+ async getSubscriptionsAdmin(data) {
759
+ if (!data || typeof data !== "object") {
760
+ throw new TypeError("Le paramètre data doit être un objet.");
761
+ }
992
762
  return this.callIsConnected("GET_SUBSCRIPTIONS_ADMIN", data);
993
763
  }
994
764
 
995
765
  /**
996
766
  * Récupérer les abonnés non administrables : Liste les abonnés sans droits d’admin.
997
767
  * 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)
768
+ * @param {import("./EndpointApi.types").GetSubscribersData} data - Données envoyées à l'API
1011
769
  * @returns {Promise<Object>} - Les données de réponse.
1012
770
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1013
771
  * @throws {Error} - En cas d'erreur inattendue.
1014
772
  */
1015
- async getSubscribers(data = {}) {
773
+ async getSubscribers(data) {
774
+ if (!data || typeof data !== "object") {
775
+ throw new TypeError("Le paramètre data doit être un objet.");
776
+ }
1016
777
  return this.call("GET_SUBSCRIBERS", data);
1017
778
  }
1018
779
 
1019
780
  /**
1020
781
  * Récupérer les abonnés administrables : Liste les abonnés d’une entité administrée par l’utilisateur.
1021
782
  * 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é
783
+ * @param {import("./EndpointApi.types").GetSubscribersAdminData} data - Données envoyées à l'API
1038
784
  * @returns {Promise<Object>} - Les données de réponse.
1039
785
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1040
786
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1041
787
  * @throws {Error} - En cas d'erreur inattendue.
1042
788
  */
1043
- async getSubscribersAdmin(data = {}) {
789
+ async getSubscribersAdmin(data) {
790
+ if (!data || typeof data !== "object") {
791
+ throw new TypeError("Le paramètre data doit être un objet.");
792
+ }
1044
793
  return this.callIsConnected("GET_SUBSCRIBERS_ADMIN", data);
1045
794
  }
1046
795
 
1047
796
  /**
1048
797
  * Récupérer les contributeurs non administrables : Récupère les contributeurs sans droits d’admin.
1049
798
  * 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)
799
+ * @param {import("./EndpointApi.types").GetContributorsData} data - Données envoyées à l'API
1063
800
  * @returns {Promise<Object>} - Les données de réponse.
1064
801
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1065
802
  * @throws {Error} - En cas d'erreur inattendue.
1066
803
  */
1067
- async getContributors(data = {}) {
804
+ async getContributors(data) {
805
+ if (!data || typeof data !== "object") {
806
+ throw new TypeError("Le paramètre data doit être un objet.");
807
+ }
1068
808
  return this.call("GET_CONTRIBUTORS", data);
1069
809
  }
1070
810
 
1071
811
  /**
1072
812
  * Récupérer les contributeurs administrables : Récupère les contributeurs d’un project l’utilisateur est admin.
1073
813
  * 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
814
+ * @param {import("./EndpointApi.types").GetContributorsAdminData} data - Données envoyées à l'API
1089
815
  * @returns {Promise<Object>} - Les données de réponse.
1090
816
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1091
817
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1092
818
  * @throws {Error} - En cas d'erreur inattendue.
1093
819
  */
1094
- async getContributorsAdmin(data = {}) {
820
+ async getContributorsAdmin(data) {
821
+ if (!data || typeof data !== "object") {
822
+ throw new TypeError("Le paramètre data doit être un objet.");
823
+ }
1095
824
  return this.callIsConnected("GET_CONTRIBUTORS_ADMIN", data);
1096
825
  }
1097
826
 
1098
827
  /**
1099
828
  * Recherche globale des badges : Recherche des badges publics en fonction de divers critères.
1100
829
  * 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 = {}) {
830
+ * @param {import("./EndpointApi.types").GetBadgesData} data - Données envoyées à l'API
831
+ * @returns {Promise<Object>} - Les données de réponse.
832
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
833
+ * @throws {Error} - En cas d'erreur inattendue.
834
+ */
835
+ async getBadges(data) {
836
+ if (!data || typeof data !== "object") {
837
+ throw new TypeError("Le paramètre data doit être un objet.");
838
+ }
1122
839
  return this.call("GET_BADGES", data);
1123
840
  }
1124
841
 
1125
842
  /**
1126
843
  * Recherche globale des badges : Recherche des badges publics en fonction de divers critères.
1127
844
  * 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 = {}) {
845
+ * @param {import("./EndpointApi.types").GetBadgesFiltersData} data - Données envoyées à l'API
846
+ * @returns {Promise<Object>} - Les données de réponse.
847
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
848
+ * @throws {Error} - En cas d'erreur inattendue.
849
+ */
850
+ async getBadgesFilters(data) {
851
+ if (!data || typeof data !== "object") {
852
+ throw new TypeError("Le paramètre data doit être un objet.");
853
+ }
1148
854
  return this.call("GET_BADGES_FILTERS", data);
1149
855
  }
1150
856
 
1151
857
  /**
1152
858
  * Suivre un élément : Permet à un utilisateur de suivre un élément (projet, organisation...).
1153
859
  * 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
860
+ * @param {import("./EndpointApi.types").ConnectData} data - Données envoyées à l'API
1160
861
  * @returns {Promise<Object>} - Les données de réponse.
1161
862
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1162
863
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1163
864
  * @throws {Error} - En cas d'erreur inattendue.
1164
865
  */
1165
- async connect(data = {}) {
866
+ async connect(data) {
867
+ if (!data || typeof data !== "object") {
868
+ throw new TypeError("Le paramètre data doit être un objet.");
869
+ }
1166
870
  return this.callIsConnected("CONNECT", data);
1167
871
  }
1168
872
 
1169
873
  /**
1170
874
  * Se déconnecter d'un élément : Permet de supprimer le lien entre un utilisateur et un élément.
1171
875
  * 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
876
+ * @param {import("./EndpointApi.types").DisconnectData} data - Données envoyées à l'API
1178
877
  * @returns {Promise<Object>} - Les données de réponse.
1179
878
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1180
879
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1181
880
  * @throws {Error} - En cas d'erreur inattendue.
1182
881
  */
1183
- async disconnect(data = {}) {
882
+ async disconnect(data) {
883
+ if (!data || typeof data !== "object") {
884
+ throw new TypeError("Le paramètre data doit être un objet.");
885
+ }
1184
886
  return this.callIsConnected("DISCONNECT", data);
1185
887
  }
1186
888
 
1187
889
  /**
1188
890
  * 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
891
  * 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
892
+ * @param {import("./EndpointApi.types").GetElementsKeyData} data - Données envoyées à l'API
1192
893
  * @returns {Promise<Object>} - Les données de réponse.
1193
894
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1194
895
  * @throws {Error} - En cas d'erreur inattendue.
1195
896
  */
1196
- async getElementsKey(data = {}) {
897
+ async getElementsKey(data) {
898
+ if (!data || typeof data !== "object") {
899
+ throw new TypeError("Le paramètre data doit être un objet.");
900
+ }
1197
901
  return this.call("GET_ELEMENTS_KEY", data);
1198
902
  }
1199
903
 
1200
904
  /**
1201
905
  * Récupérer les favoris d'un utilisateur : Récupère la liste des favoris d’un utilisateur.
1202
906
  * Constant : GET_FAVORIS
1203
- * @param {object} data.pathParams - data.pathParams
1204
- * @param {string} data.pathParams.id - ID de l'utilisateur (default: "@userId")
907
+ * @param {import("./EndpointApi.types").GetFavorisData} data - Données envoyées à l'API
1205
908
  * @returns {Promise<Object>} - Les données de réponse.
1206
909
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1207
910
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1208
911
  * @throws {Error} - En cas d'erreur inattendue.
1209
912
  */
1210
- async getFavoris(data = {}) {
913
+ async getFavoris(data) {
914
+ if (!data || typeof data !== "object") {
915
+ throw new TypeError("Le paramètre data doit être un objet.");
916
+ }
1211
917
  return this.callIsConnected("GET_FAVORIS", data);
1212
918
  }
1213
919
 
1214
920
  /**
1215
921
  * Supprimer un favori : Supprime un élément des favoris de l’utilisateur.
1216
922
  * 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
923
+ * @param {import("./EndpointApi.types").DeleteFavorisData} data - Données envoyées à l'API
1225
924
  * @returns {Promise<Object>} - Les données de réponse.
1226
925
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1227
926
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1228
927
  * @throws {Error} - En cas d'erreur inattendue.
1229
928
  */
1230
- async deleteFavoris(data = {}) {
929
+ async deleteFavoris(data) {
930
+ if (!data || typeof data !== "object") {
931
+ throw new TypeError("Le paramètre data doit être un objet.");
932
+ }
1231
933
  return this.callIsConnected("DELETE_FAVORIS", data);
1232
934
  }
1233
935
 
1234
936
  /**
1235
937
  * Ajouter un favori : Ajoute un élément aux favoris de l’utilisateur.
1236
938
  * 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}$"
939
+ * @param {import("./EndpointApi.types").AddFavorisData} data - Données envoyées à l'API
1249
940
  * @returns {Promise<Object>} - Les données de réponse.
1250
941
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1251
942
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1252
943
  * @throws {Error} - En cas d'erreur inattendue.
1253
944
  */
1254
- async addFavoris(data = {}) {
945
+ async addFavoris(data) {
946
+ if (!data || typeof data !== "object") {
947
+ throw new TypeError("Le paramètre data doit être un objet.");
948
+ }
1255
949
  return this.callIsConnected("ADD_FAVORIS", data);
1256
950
  }
1257
951
 
1258
952
  /**
1259
953
  * Créer une organisation : Crée une nouvelle organisation.
1260
954
  * 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: "")
955
+ * @param {import("./EndpointApi.types").AddOrganizationData} data - Données envoyées à l'API
1298
956
  * @returns {Promise<Object>} - Les données de réponse.
1299
957
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1300
958
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1301
959
  * @throws {Error} - En cas d'erreur inattendue.
1302
960
  */
1303
- async addOrganization(data = {}) {
961
+ async addOrganization(data) {
962
+ if (!data || typeof data !== "object") {
963
+ throw new TypeError("Le paramètre data doit être un objet.");
964
+ }
1304
965
  return this.callIsConnected("ADD_ORGANIZATION", data);
1305
966
  }
1306
967
 
1307
968
  /**
1308
969
  * Créer un projet : Crée un nouveau projet avec des informations de base et des options supplémentaires.
1309
970
  * 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: "")
971
+ * @param {import("./EndpointApi.types").AddProjectData} data - Données envoyées à l'API
1348
972
  * @returns {Promise<Object>} - Les données de réponse.
1349
973
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1350
974
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1351
975
  * @throws {Error} - En cas d'erreur inattendue.
1352
976
  */
1353
- async addProject(data = {}) {
977
+ async addProject(data) {
978
+ if (!data || typeof data !== "object") {
979
+ throw new TypeError("Le paramètre data doit être un objet.");
980
+ }
1354
981
  return this.callIsConnected("ADD_PROJECT", data);
1355
982
  }
1356
983
 
1357
984
  /**
1358
985
  * Créer un POI : Crée un nouveau POI (Point d'Intérêt).
1359
986
  * 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: "")
987
+ * @param {import("./EndpointApi.types").AddPoiData} data - Données envoyées à l'API
1394
988
  * @returns {Promise<Object>} - Les données de réponse.
1395
989
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1396
990
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1397
991
  * @throws {Error} - En cas d'erreur inattendue.
1398
992
  */
1399
- async addPoi(data = {}) {
993
+ async addPoi(data) {
994
+ if (!data || typeof data !== "object") {
995
+ throw new TypeError("Le paramètre data doit être un objet.");
996
+ }
1400
997
  return this.callIsConnected("ADD_POI", data);
1401
998
  }
1402
999
 
1403
1000
  /**
1404
1001
  * Créer un événement : Crée un nouvel événement.
1405
1002
  * 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: "")
1003
+ * @param {import("./EndpointApi.types").AddEventData} data - Données envoyées à l'API
1452
1004
  * @returns {Promise<Object>} - Les données de réponse.
1453
1005
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1454
1006
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1455
1007
  * @throws {Error} - En cas d'erreur inattendue.
1456
1008
  */
1457
- async addEvent(data = {}) {
1009
+ async addEvent(data) {
1010
+ if (!data || typeof data !== "object") {
1011
+ throw new TypeError("Le paramètre data doit être un objet.");
1012
+ }
1458
1013
  return this.callIsConnected("ADD_EVENT", data);
1459
1014
  }
1460
1015
 
1461
1016
  /**
1462
1017
  * Supprimer un POI : Supprime un POI existant.
1463
1018
  * 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
1019
+ * @param {import("./EndpointApi.types").DeletePoiData} data - Données envoyées à l'API
1468
1020
  * @returns {Promise<Object>} - Les données de réponse.
1469
1021
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1470
1022
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1471
1023
  * @throws {Error} - En cas d'erreur inattendue.
1472
1024
  */
1473
- async deletePoi(data = {}) {
1025
+ async deletePoi(data) {
1026
+ if (!data || typeof data !== "object") {
1027
+ throw new TypeError("Le paramètre data doit être un objet.");
1028
+ }
1474
1029
  return this.callIsConnected("DELETE_POI", data);
1475
1030
  }
1476
1031
 
1477
1032
  /**
1478
1033
  * Supprimer un événement : Supprime un événement spécifique.
1479
1034
  * 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
1035
+ * @param {import("./EndpointApi.types").DeleteEventData} data - Données envoyées à l'API
1484
1036
  * @returns {Promise<Object>} - Les données de réponse.
1485
1037
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1486
1038
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1487
1039
  * @throws {Error} - En cas d'erreur inattendue.
1488
1040
  */
1489
- async deleteEvent(data = {}) {
1041
+ async deleteEvent(data) {
1042
+ if (!data || typeof data !== "object") {
1043
+ throw new TypeError("Le paramètre data doit être un objet.");
1044
+ }
1490
1045
  return this.callIsConnected("DELETE_EVENT", data);
1491
1046
  }
1492
1047
 
1493
1048
  /**
1494
1049
  * Supprimer un élément : Supprime un élément existant.
1495
1050
  * 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
1051
+ * @param {import("./EndpointApi.types").DeleteElementData} data - Données envoyées à l'API
1501
1052
  * @returns {Promise<Object>} - Les données de réponse.
1502
1053
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1503
1054
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1504
1055
  * @throws {Error} - En cas d'erreur inattendue.
1505
1056
  */
1506
- async deleteElement(data = {}) {
1057
+ async deleteElement(data) {
1058
+ if (!data || typeof data !== "object") {
1059
+ throw new TypeError("Le paramètre data doit être un objet.");
1060
+ }
1507
1061
  return this.callIsConnected("DELETE_ELEMENT", data);
1508
1062
  }
1509
1063
 
1510
1064
  /**
1511
1065
  * Ajouter une image à un élément : Ajoute une image à un élément.
1512
1066
  * 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
1067
+ * @param {import("./EndpointApi.types").AddImageElementData} data - Données envoyées à l'API
1521
1068
  * @returns {Promise<Object>} - Les données de réponse.
1522
1069
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1523
1070
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1524
1071
  * @throws {Error} - En cas d'erreur inattendue.
1525
1072
  */
1526
- async addImageElement(data = {}) {
1073
+ async addImageElement(data) {
1074
+ if (!data || typeof data !== "object") {
1075
+ throw new TypeError("Le paramètre data doit être un objet.");
1076
+ }
1527
1077
  return this.callIsConnected("ADD_IMAGE_ELEMENT", data);
1528
1078
  }
1529
1079
 
1530
1080
  /**
1531
1081
  * Valider un lien : Permet de valider un lien (ex: rejoindre un projet, accepter un membre...).
1532
1082
  * 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
1083
+ * @param {import("./EndpointApi.types").LinkValidateData} data - Données envoyées à l'API
1539
1084
  * @returns {Promise<Object>} - Les données de réponse.
1540
1085
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1541
1086
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1542
1087
  * @throws {Error} - En cas d'erreur inattendue.
1543
1088
  */
1544
- async linkValidate(data = {}) {
1089
+ async linkValidate(data) {
1090
+ if (!data || typeof data !== "object") {
1091
+ throw new TypeError("Le paramètre data doit être un objet.");
1092
+ }
1545
1093
  return this.callIsConnected("LINK_VALIDATE", data);
1546
1094
  }
1547
1095
 
1548
1096
  /**
1549
1097
  * Recherche avec autocomplétion (membres) : Recherche des membres avec autocomplétion.
1550
1098
  * 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")
1099
+ * @param {import("./EndpointApi.types").SearchMemberAutocompleteData} data - Données envoyées à l'API
1554
1100
  * @returns {Promise<Object>} - Les données de réponse.
1555
1101
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1556
1102
  * @throws {Error} - En cas d'erreur inattendue.
1557
1103
  */
1558
- async searchMemberAutocomplete(data = {}) {
1104
+ async searchMemberAutocomplete(data) {
1105
+ if (!data || typeof data !== "object") {
1106
+ throw new TypeError("Le paramètre data doit être un objet.");
1107
+ }
1559
1108
  return this.call("SEARCH_MEMBER_AUTOCOMPLETE", data);
1560
1109
  }
1561
1110
 
1562
1111
  /**
1563
1112
  * Récupérer les notifications : Récupère la liste des notifications pour un utilisateur.
1564
1113
  * 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")
1114
+ * @param {import("./EndpointApi.types").GetNotificationsData} data - Données envoyées à l'API
1570
1115
  * @returns {Promise<Object>} - Les données de réponse.
1571
1116
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1572
1117
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1573
1118
  * @throws {Error} - En cas d'erreur inattendue.
1574
1119
  */
1575
- async getNotifications(data = {}) {
1120
+ async getNotifications(data) {
1121
+ if (!data || typeof data !== "object") {
1122
+ throw new TypeError("Le paramètre data doit être un objet.");
1123
+ }
1576
1124
  return this.callIsConnected("GET_NOTIFICATIONS", data);
1577
1125
  }
1578
1126
 
1579
1127
  /**
1580
1128
  * Récupérer le nombre de notifications : Récupère le nombre de notifications pour un utilisateur.
1581
1129
  * 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")
1130
+ * @param {import("./EndpointApi.types").GetNotificationsCountData} data - Données envoyées à l'API
1587
1131
  * @returns {Promise<Object>} - Les données de réponse.
1588
1132
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1589
1133
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1590
1134
  * @throws {Error} - En cas d'erreur inattendue.
1591
1135
  */
1592
- async getNotificationsCount(data = {}) {
1136
+ async getNotificationsCount(data) {
1137
+ if (!data || typeof data !== "object") {
1138
+ throw new TypeError("Le paramètre data doit être un objet.");
1139
+ }
1593
1140
  return this.callIsConnected("GET_NOTIFICATIONS_COUNT", data);
1594
1141
  }
1595
1142
 
1596
1143
  /**
1597
1144
  * Mettre à jour toutes les notifications : Marque toutes les notifications comme vues ou lues.
1598
1145
  * 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)
1146
+ * @param {import("./EndpointApi.types").NotificationUpdateData} data - Données envoyées à l'API
1602
1147
  * @returns {Promise<Object>} - Les données de réponse.
1603
1148
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1604
1149
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1605
1150
  * @throws {Error} - En cas d'erreur inattendue.
1606
1151
  */
1607
- async notificationUpdate(data = {}) {
1152
+ async notificationUpdate(data) {
1153
+ if (!data || typeof data !== "object") {
1154
+ throw new TypeError("Le paramètre data doit être un objet.");
1155
+ }
1608
1156
  return this.callIsConnected("NOTIFICATION_UPDATE", data);
1609
1157
  }
1610
1158
 
1611
1159
  /**
1612
1160
  * Supprimer toutes les notifications : Supprime toutes les notifications de l’utilisateur.
1613
1161
  * Constant : REMOVE_ALL_NOTIFICATIONS
1162
+ * @param {Object} [data] - Données envoyées à l'API (optionnel)
1614
1163
  * @returns {Promise<Object>} - Les données de réponse.
1615
1164
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1616
1165
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1617
1166
  * @throws {Error} - En cas d'erreur inattendue.
1618
1167
  */
1619
- async removeAllNotifications(data = {}) {
1168
+ async removeAllNotifications(data) {
1169
+ if (!data || typeof data !== "object") {
1170
+ throw new TypeError("Le paramètre data doit être un objet.");
1171
+ }
1620
1172
  return this.callIsConnected("REMOVE_ALL_NOTIFICATIONS", data);
1621
1173
  }
1622
1174
 
1623
1175
  /**
1624
1176
  * Marquer une notification comme lue : Marque une notification spécifique comme lue.
1625
1177
  * Constant : MARK_NOTIFICATION_AS_READ
1626
- * @param {object} data - data
1627
- * @param {string} data.id - ID de la notification
1178
+ * @param {import("./EndpointApi.types").MarkNotificationAsReadData} data - Données envoyées à l'API
1628
1179
  * @returns {Promise<Object>} - Les données de réponse.
1629
1180
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1630
1181
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1631
1182
  * @throws {Error} - En cas d'erreur inattendue.
1632
1183
  */
1633
- async markNotificationAsRead(data = {}) {
1184
+ async markNotificationAsRead(data) {
1185
+ if (!data || typeof data !== "object") {
1186
+ throw new TypeError("Le paramètre data doit être un objet.");
1187
+ }
1634
1188
  return this.callIsConnected("MARK_NOTIFICATION_AS_READ", data);
1635
1189
  }
1636
1190
 
1637
1191
  /**
1638
1192
  * Recherche ActivityPub : Recherche des éléments ActivityPub selon une adresse ou un terme.
1639
1193
  * Constant : ACTIVITYPUB_SEARCH
1640
- * @param {object} data.pathParams - data.pathParams
1641
- * @param {string} data.pathParams.address - Adresse à rechercher
1194
+ * @param {import("./EndpointApi.types").ActivitypubSearchData} data - Données envoyées à l'API
1642
1195
  * @returns {Promise<Object>} - Les données de réponse.
1643
1196
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1644
1197
  * @throws {Error} - En cas d'erreur inattendue.
1645
1198
  */
1646
- async activitypubSearch(data = {}) {
1199
+ async activitypubSearch(data) {
1200
+ if (!data || typeof data !== "object") {
1201
+ throw new TypeError("Le paramètre data doit être un objet.");
1202
+ }
1647
1203
  return this.call("ACTIVITYPUB_SEARCH", data);
1648
1204
  }
1649
1205
 
1650
1206
  /**
1651
1207
  * Mettre à jour une activité (ActivityPub) : Met à jour une activité ActivityPub avec une action et un payload.
1652
1208
  * 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
1209
+ * @param {import("./EndpointApi.types").ActivitypubLinkData} data - Données envoyées à l'API
1660
1210
  * @returns {Promise<Object>} - Les données de réponse.
1661
1211
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1662
1212
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1663
1213
  * @throws {Error} - En cas d'erreur inattendue.
1664
1214
  */
1665
- async activitypubLink(data = {}) {
1215
+ async activitypubLink(data) {
1216
+ if (!data || typeof data !== "object") {
1217
+ throw new TypeError("Le paramètre data doit être un objet.");
1218
+ }
1666
1219
  return this.callIsConnected("ACTIVITYPUB_LINK", data);
1667
1220
  }
1668
1221
 
1669
1222
  /**
1670
1223
  * Obtenir la liste ActivityPub : Obtient la liste des communautés ActivityPub pour un utilisateur.
1671
1224
  * 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é
1225
+ * @param {import("./EndpointApi.types").ActivitypubGetCommunityData} data - Données envoyées à l'API
1675
1226
  * @returns {Promise<Object>} - Les données de réponse.
1676
1227
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1677
1228
  * @throws {Error} - En cas d'erreur inattendue.
1678
1229
  */
1679
- async activitypubGetCommunity(data = {}) {
1230
+ async activitypubGetCommunity(data) {
1231
+ if (!data || typeof data !== "object") {
1232
+ throw new TypeError("Le paramètre data doit être un objet.");
1233
+ }
1680
1234
  return this.call("ACTIVITYPUB_GET_COMMUNITY", data);
1681
1235
  }
1682
1236
 
1683
1237
  /**
1684
1238
  * Récupérer les informations d'un badge : Récupère les détails d’un badge par son ID.
1685
1239
  * Constant : GET_BADGE
1686
- * @param {object} data.pathParams - data.pathParams
1687
- * @param {string} data.pathParams.id - ID du badge
1240
+ * @param {import("./EndpointApi.types").GetBadgeData} data - Données envoyées à l'API
1688
1241
  * @returns {Promise<Object>} - Les données de réponse.
1689
1242
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1690
1243
  * @throws {Error} - En cas d'erreur inattendue.
1691
1244
  */
1692
- async getBadge(data = {}) {
1245
+ async getBadge(data) {
1246
+ if (!data || typeof data !== "object") {
1247
+ throw new TypeError("Le paramètre data doit être un objet.");
1248
+ }
1693
1249
  return this.call("GET_BADGE", data);
1694
1250
  }
1695
1251
 
1696
1252
  /**
1697
1253
  * Obtenir la liste des émetteurs de badges : Récupère la liste des émetteurs pour les badges.
1698
1254
  * Constant : GET_EMETTEUR_BADGES
1255
+ * @param {Object} [data] - Données envoyées à l'API (optionnel)
1699
1256
  * @returns {Promise<Object>} - Les données de réponse.
1700
1257
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1701
1258
  * @throws {Error} - En cas d'erreur inattendue.
1702
1259
  */
1703
- async getEmetteurBadges(data = {}) {
1260
+ async getEmetteurBadges(data) {
1261
+ if (!data || typeof data !== "object") {
1262
+ throw new TypeError("Le paramètre data doit être un objet.");
1263
+ }
1704
1264
  return this.call("GET_EMETTEUR_BADGES", data);
1705
1265
  }
1706
1266
 
1707
1267
  /**
1708
1268
  * Créer un badge : Crée un nouveau badge avec des informations détaillées.
1709
1269
  * 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)$"
1270
+ * @param {import("./EndpointApi.types").AddBadgesData} data - Données envoyées à l'API
1729
1271
  * @returns {Promise<Object>} - Les données de réponse.
1730
1272
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1731
1273
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1732
1274
  * @throws {Error} - En cas d'erreur inattendue.
1733
1275
  */
1734
- async addBadges(data = {}) {
1276
+ async addBadges(data) {
1277
+ if (!data || typeof data !== "object") {
1278
+ throw new TypeError("Le paramètre data doit être un objet.");
1279
+ }
1735
1280
  return this.callIsConnected("ADD_BADGES", data);
1736
1281
  }
1737
1282
 
1738
1283
  /**
1739
1284
  * Attribuer un badge : Attribue un badge à une ou plusieurs personnes ou entités.
1740
1285
  * 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: "")
1286
+ * @param {import("./EndpointApi.types").AssignBadgesData} data - Données envoyées à l'API
1750
1287
  * @returns {Promise<Object>} - Les données de réponse.
1751
1288
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1752
1289
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1753
1290
  * @throws {Error} - En cas d'erreur inattendue.
1754
1291
  */
1755
- async assignBadges(data = {}) {
1292
+ async assignBadges(data) {
1293
+ if (!data || typeof data !== "object") {
1294
+ throw new TypeError("Le paramètre data doit être un objet.");
1295
+ }
1756
1296
  return this.callIsConnected("ASSIGN_BADGES", data);
1757
1297
  }
1758
1298
 
1759
1299
  /**
1760
1300
  * Obtenir la liste des événements : Permet de rechercher des événements selon plusieurs critères (dates, nom, type...).
1761
1301
  * 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)
1302
+ * @param {import("./EndpointApi.types").GetEventsData} data - Données envoyées à l'API
1776
1303
  * @returns {Promise<Object>} - Les données de réponse.
1777
1304
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1778
1305
  * @throws {Error} - En cas d'erreur inattendue.
1779
1306
  */
1780
- async getEvents(data = {}) {
1307
+ async getEvents(data) {
1308
+ if (!data || typeof data !== "object") {
1309
+ throw new TypeError("Le paramètre data doit être un objet.");
1310
+ }
1781
1311
  return this.call("GET_EVENTS", data);
1782
1312
  }
1783
1313
 
1784
1314
  /**
1785
1315
  * Partager un événement : Partage un événement avec d’autres utilisateurs ou entités.
1786
1316
  * 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
1317
+ * @param {import("./EndpointApi.types").ShareEventsData} data - Données envoyées à l'API
1794
1318
  * @returns {Promise<Object>} - Les données de réponse.
1795
1319
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1796
1320
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1797
1321
  * @throws {Error} - En cas d'erreur inattendue.
1798
1322
  */
1799
- async shareEvents(data = {}) {
1323
+ async shareEvents(data) {
1324
+ if (!data || typeof data !== "object") {
1325
+ throw new TypeError("Le paramètre data doit être un objet.");
1326
+ }
1800
1327
  return this.callIsConnected("SHARE_EVENTS", data);
1801
1328
  }
1802
1329
 
1803
1330
  /**
1804
1331
  * Inviter des participants à un événement : Invite plusieurs utilisateurs ou entités à participer à un événement.
1805
1332
  * 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}$"
1333
+ * @param {import("./EndpointApi.types").InviteEventData} data - Données envoyées à l'API
1818
1334
  * @returns {Promise<Object>} - Les données de réponse.
1819
1335
  * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1820
1336
  * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
1821
1337
  * @throws {Error} - En cas d'erreur inattendue.
1822
1338
  */
1823
- async inviteEvent(data = {}) {
1339
+ async inviteEvent(data) {
1340
+ if (!data || typeof data !== "object") {
1341
+ throw new TypeError("Le paramètre data doit être un objet.");
1342
+ }
1824
1343
  return this.callIsConnected("INVITE_EVENT", data);
1825
1344
  }
1826
1345