@communecter/cocolight-api-client 1.0.111 → 1.0.113

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@communecter/cocolight-api-client",
3
- "version": "1.0.111",
3
+ "version": "1.0.113",
4
4
  "description": "Client Axios simplifié pour l'API cocolight",
5
5
  "repository": {
6
6
  "type": "git",
package/src/api/User.ts CHANGED
@@ -922,17 +922,16 @@ export class User extends BaseEntity<UserItemNormalized> {
922
922
  // ────────────────────────────────
923
923
 
924
924
  /**
925
- * Valide les préconditions pour les méthodes nécessitant d'être membre.
925
+ * Valide les préconditions de base (connexion, entité, parent, type).
926
926
  * @private
927
927
  * @param methodName - Nom de la méthode appelante (pour les messages d'erreur).
928
928
  * @param expectedTypes - Types d'entité parent autorisés.
929
929
  * @throws {ApiError} 401 - Si l'utilisateur n'est pas connecté.
930
930
  * @throws {ApiError} 404 - Si l'utilisateur n'est pas enregistré.
931
931
  * @throws {ApiError} 404 - Si l'entité parente n'est pas enregistrée.
932
- * @throws {ApiError} 401 - Si l'utilisateur connecté n'est pas membre de l'entité parente.
933
932
  * @throws {ApiError} 400 - Si le type d'entité parent n'est pas valide.
934
933
  */
935
- private _validateMemberPreconditions(methodName: string, expectedTypes: string[]): void {
934
+ private _validateBasePreconditions(methodName: string, expectedTypes: string[]): void {
936
935
  if (!this.userId) {
937
936
  throw new ApiError(`Vous devez être connecté pour ${methodName}.`, 401);
938
937
  }
@@ -948,6 +947,25 @@ export class User extends BaseEntity<UserItemNormalized> {
948
947
  if (!expectedTypes.includes(this.parent.getEntityType())) {
949
948
  throw new ApiError(`L'entité doit être de type : ${expectedTypes.join(", ")}, reçu : ${this.parent.getEntityType()}`, 400);
950
949
  }
950
+ }
951
+
952
+ /**
953
+ * Valide les préconditions pour les méthodes nécessitant d'être membre.
954
+ * @private
955
+ * @param methodName - Nom de la méthode appelante (pour les messages d'erreur).
956
+ * @param expectedTypes - Types d'entité parent autorisés.
957
+ * @throws {ApiError} 401 - Si l'utilisateur n'est pas connecté.
958
+ * @throws {ApiError} 404 - Si l'utilisateur n'est pas enregistré.
959
+ * @throws {ApiError} 404 - Si l'entité parente n'est pas enregistrée.
960
+ * @throws {ApiError} 401 - Si l'utilisateur connecté n'est pas membre de l'entité parente.
961
+ * @throws {ApiError} 400 - Si le type d'entité parent n'est pas valide.
962
+ */
963
+ private _validateMemberPreconditions(methodName: string, expectedTypes: string[]): void {
964
+ this._validateBasePreconditions(methodName, expectedTypes);
965
+
966
+ if (!this.parent?.id) {
967
+ throw new ApiError("L'entité parente n'est pas enregistrée.", 404);
968
+ }
951
969
 
952
970
  // Vérifier que l'utilisateur connecté a le bon rôle selon le type d'entité
953
971
  // Pour les events, tout utilisateur connecté peut agir (pas besoin d'être participant)
@@ -1068,7 +1086,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1068
1086
  */
1069
1087
  override isAdmin(): boolean {
1070
1088
  try {
1071
- this._validateMemberPreconditions("isAdmin", ["organizations", "projects"]);
1089
+ this._validateBasePreconditions("isAdmin", ["organizations", "projects"]);
1072
1090
  } catch{
1073
1091
  return false;
1074
1092
  }
@@ -1103,7 +1121,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1103
1121
  */
1104
1122
  override isMember(): boolean {
1105
1123
  try {
1106
- this._validateMemberPreconditions("isMember", ["organizations"]);
1124
+ this._validateBasePreconditions("isMember", ["organizations"]);
1107
1125
  } catch{
1108
1126
  return false;
1109
1127
  }
@@ -1138,7 +1156,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1138
1156
  */
1139
1157
  override isContributor(): boolean {
1140
1158
  try {
1141
- this._validateMemberPreconditions("isContributor", ["projects"]);
1159
+ this._validateBasePreconditions("isContributor", ["projects"]);
1142
1160
  } catch{
1143
1161
  return false;
1144
1162
  }
@@ -1173,7 +1191,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1173
1191
  */
1174
1192
  override isAttendee(): boolean {
1175
1193
  try {
1176
- this._validateMemberPreconditions("isAttendee", ["events"]);
1194
+ this._validateBasePreconditions("isAttendee", ["events"]);
1177
1195
  } catch{
1178
1196
  return false;
1179
1197
  }
@@ -1200,7 +1218,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1200
1218
  */
1201
1219
  override isInviting(): boolean {
1202
1220
  try {
1203
- this._validateMemberPreconditions("isInviting", ["organizations", "projects", "events"]);
1221
+ this._validateBasePreconditions("isInviting", ["citoyens", "organizations", "projects", "events"]);
1204
1222
  } catch{
1205
1223
  return false;
1206
1224
  }
@@ -1228,7 +1246,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1228
1246
  */
1229
1247
  override isInvitingAdmin(): boolean {
1230
1248
  try {
1231
- this._validateMemberPreconditions("isInvitingAdmin", ["organizations", "projects"]);
1249
+ this._validateBasePreconditions("isInvitingAdmin", ["organizations", "projects"]);
1232
1250
  } catch{
1233
1251
  return false;
1234
1252
  }
@@ -1258,7 +1276,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1258
1276
  */
1259
1277
  override isAdminPending(): boolean {
1260
1278
  try {
1261
- this._validateMemberPreconditions("isAdminPending", ["organizations", "projects"]);
1279
+ this._validateBasePreconditions("isAdminPending", ["organizations", "projects"]);
1262
1280
  } catch{
1263
1281
  return false;
1264
1282
  }
@@ -1287,7 +1305,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1287
1305
  */
1288
1306
  override isToBeValidated(): boolean {
1289
1307
  try {
1290
- this._validateMemberPreconditions("isToBeValidated", ["organizations", "projects", "events"]);
1308
+ this._validateBasePreconditions("isToBeValidated", ["citoyens", "organizations", "projects", "events"]);
1291
1309
  } catch{
1292
1310
  return false;
1293
1311
  }
@@ -343,6 +343,17 @@ export declare class User extends BaseEntity<UserItemNormalized> {
343
343
  * @returns L'entité correspondante au slug.
344
344
  */
345
345
  entityBySlug(slug: string): Promise<EntityTypes>;
346
+ /**
347
+ * Valide les préconditions de base (connexion, entité, parent, type).
348
+ * @private
349
+ * @param methodName - Nom de la méthode appelante (pour les messages d'erreur).
350
+ * @param expectedTypes - Types d'entité parent autorisés.
351
+ * @throws {ApiError} 401 - Si l'utilisateur n'est pas connecté.
352
+ * @throws {ApiError} 404 - Si l'utilisateur n'est pas enregistré.
353
+ * @throws {ApiError} 404 - Si l'entité parente n'est pas enregistrée.
354
+ * @throws {ApiError} 400 - Si le type d'entité parent n'est pas valide.
355
+ */
356
+ private _validateBasePreconditions;
346
357
  /**
347
358
  * Valide les préconditions pour les méthodes nécessitant d'être membre.
348
359
  * @private