@communecter/cocolight-api-client 1.0.112 → 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/dist/cocolight-api-client.browser.js +1 -1
- package/dist/cocolight-api-client.cjs +1 -1
- package/dist/cocolight-api-client.mjs.js +1 -1
- package/dist/cocolight-api-client.vite.mjs.js +1 -1
- package/dist/cocolight-api-client.vite.mjs.js.map +1 -1
- package/package.json +1 -1
- package/src/api/User.ts +29 -11
- package/types/api/User.d.ts +11 -0
package/package.json
CHANGED
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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
1308
|
+
this._validateBasePreconditions("isToBeValidated", ["citoyens", "organizations", "projects", "events"]);
|
|
1291
1309
|
} catch{
|
|
1292
1310
|
return false;
|
|
1293
1311
|
}
|
package/types/api/User.d.ts
CHANGED
|
@@ -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
|