@communecter/cocolight-api-client 1.0.112 → 1.0.114

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.112",
3
+ "version": "1.0.114",
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,13 +1218,19 @@ export class User extends BaseEntity<UserItemNormalized> {
1200
1218
  */
1201
1219
  override isInviting(): boolean {
1202
1220
  try {
1203
- this._validateMemberPreconditions("isInviting", ["citoyens", "organizations", "projects", "events"]);
1221
+ this._validateBasePreconditions("isInviting", ["citoyens", "organizations", "projects", "events"]);
1204
1222
  } catch{
1205
1223
  return false;
1206
1224
  }
1207
- const parentLink = this._getParentLinkForUser();
1208
- if (!parentLink) return false;
1209
- return parentLink?.isInviting === true;
1225
+ if(this.getEntityType() === "citoyens"){
1226
+ const userLink = this._getLinkFromConnectedUser();
1227
+ if (!userLink) return false;
1228
+ return userLink?.isInviting === true;
1229
+ } else {
1230
+ const parentLink = this._getParentLinkForUser();
1231
+ if (!parentLink) return false;
1232
+ return parentLink?.isInviting === true;
1233
+ }
1210
1234
  }
1211
1235
 
1212
1236
  /**
@@ -1228,7 +1252,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1228
1252
  */
1229
1253
  override isInvitingAdmin(): boolean {
1230
1254
  try {
1231
- this._validateMemberPreconditions("isInvitingAdmin", ["organizations", "projects"]);
1255
+ this._validateBasePreconditions("isInvitingAdmin", ["organizations", "projects"]);
1232
1256
  } catch{
1233
1257
  return false;
1234
1258
  }
@@ -1258,7 +1282,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1258
1282
  */
1259
1283
  override isAdminPending(): boolean {
1260
1284
  try {
1261
- this._validateMemberPreconditions("isAdminPending", ["organizations", "projects"]);
1285
+ this._validateBasePreconditions("isAdminPending", ["organizations", "projects"]);
1262
1286
  } catch{
1263
1287
  return false;
1264
1288
  }
@@ -1287,12 +1311,19 @@ export class User extends BaseEntity<UserItemNormalized> {
1287
1311
  */
1288
1312
  override isToBeValidated(): boolean {
1289
1313
  try {
1290
- this._validateMemberPreconditions("isToBeValidated", ["citoyens", "organizations", "projects", "events"]);
1314
+ this._validateBasePreconditions("isToBeValidated", ["citoyens", "organizations", "projects", "events"]);
1291
1315
  } catch{
1292
1316
  return false;
1293
1317
  }
1294
- const parentLink = this._getParentLinkForUser();
1295
- return parentLink?.toBeValidated === true;
1318
+ if(this.getEntityType() === "citoyens"){
1319
+ const userLink = this._getLinkFromConnectedUser();
1320
+ if (!userLink) return false;
1321
+ return userLink?.toBeValidated === true;
1322
+ } else {
1323
+ const parentLink = this._getParentLinkForUser();
1324
+ if (!parentLink) return false;
1325
+ return parentLink?.toBeValidated === true;
1326
+ }
1296
1327
  }
1297
1328
 
1298
1329
  /**
@@ -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