@communecter/cocolight-api-client 1.0.81 → 1.0.82

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.81",
3
+ "version": "1.0.82",
4
4
  "description": "Client Axios simplifié pour l'API cocolight",
5
5
  "repository": {
6
6
  "type": "git",
package/src/api/User.ts CHANGED
@@ -1121,7 +1121,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1121
1121
  this._validateRoleCheckPreconditions("isInvitingAdmin", ["organizations", "projects"]);
1122
1122
  const parentLink = this._getParentLinkForUser();
1123
1123
  if (!parentLink) return false;
1124
- return parentLink?.isAdminInviting === true && parentLink?.isAdmin === true;
1124
+ return (parentLink?.isAdminInviting === true || parentLink?.isInviting === true) && parentLink?.isAdmin === true;
1125
1125
  }
1126
1126
 
1127
1127
  /**
@@ -1186,6 +1186,8 @@ export class User extends BaseEntity<UserItemNormalized> {
1186
1186
  * vers l'organisation ou le projet parent. Si l'utilisateur n'a pas encore de lien,
1187
1187
  * une demande de connexion est créée.
1188
1188
  *
1189
+ * @param {Object} [options] - Options de la méthode
1190
+ * @param {boolean} [options.admin=false] - Si true, utilise "admin" comme connectType au lieu du type par défaut (connectTypeConnect)
1189
1191
  * @returns {Promise<unknown>} La réponse de l'API après création de la demande
1190
1192
  * @throws {ApiError} Si l'utilisateur n'est pas connecté, pas admin, ou si le parent n'est pas défini
1191
1193
  * @throws {ApiError} Si l'utilisateur est déjà en attente de validation
@@ -1193,14 +1195,17 @@ export class User extends BaseEntity<UserItemNormalized> {
1193
1195
  *
1194
1196
  * @example
1195
1197
  * ```typescript
1196
- * // Un admin récupère les membres et envoie une invitation
1198
+ * // Un admin récupère les membres et envoie une invitation (type par défaut)
1197
1199
  * const org = await me.organization({ slug: "myOrg" });
1198
1200
  * const users = await org.getMembers();
1199
1201
  * const user = users.results[0];
1200
1202
  * await user.sendRequestToJoinParent();
1203
+ *
1204
+ * // Avec le type admin explicite
1205
+ * await user.sendRequestToJoinParent({ admin: true });
1201
1206
  * ```
1202
1207
  */
1203
- async sendRequestToJoinParent(): Promise<unknown> {
1208
+ async sendRequestToJoinParent({ admin }: { admin: boolean } = { admin: false }): Promise<unknown> {
1204
1209
  this._validateRoleCheckPreconditions("sendRequestToJoinParent", ["organizations", "projects"]);
1205
1210
 
1206
1211
  const { connectTypeConnect } = this.parent!._getLinkMeta();
@@ -1220,7 +1225,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1220
1225
  childType: "citoyens",
1221
1226
  parentType,
1222
1227
  parentId: this.parent!.id!,
1223
- connectType: connectTypeConnect
1228
+ connectType: admin ? "admin" : connectTypeConnect
1224
1229
  };
1225
1230
 
1226
1231
  const retour = await this.callIsConnected(() => this.endpointApi.connect(data));
@@ -1233,7 +1238,7 @@ export class User extends BaseEntity<UserItemNormalized> {
1233
1238
  }
1234
1239
 
1235
1240
  // Cas : déjà en attente
1236
- if (parentLink.toBeValidated) {
1241
+ if (parentLink.isInviting || parentLink?.isAdminInviting) {
1237
1242
  throw new ApiError("Vous êtes déjà en attente de validation.", 400);
1238
1243
  }
1239
1244
 
@@ -1471,7 +1476,11 @@ export class User extends BaseEntity<UserItemNormalized> {
1471
1476
  throw new ApiError("Cet utilisateur n'est pas membre de cette entité.", 400);
1472
1477
  }
1473
1478
 
1474
- if (parentLink.isAdmin && !parentLink.isAdminPending) {
1479
+ if (parentLink?.isAdmin && (parentLink?.isInviting || parentLink?.isAdminInviting)) {
1480
+ throw new ApiError("Cet utilisateur est déjà en cours d'invitation en tant qu'admin.", 400);
1481
+ }
1482
+
1483
+ if (parentLink?.isAdmin && !parentLink?.isInviting && !parentLink?.isAdminInviting) {
1475
1484
  throw new ApiError("Cet utilisateur est déjà admin.", 400);
1476
1485
  }
1477
1486
 
@@ -562,6 +562,8 @@ export declare class User extends BaseEntity<UserItemNormalized> {
562
562
  * vers l'organisation ou le projet parent. Si l'utilisateur n'a pas encore de lien,
563
563
  * une demande de connexion est créée.
564
564
  *
565
+ * @param {Object} [options] - Options de la méthode
566
+ * @param {boolean} [options.admin=false] - Si true, utilise "admin" comme connectType au lieu du type par défaut (connectTypeConnect)
565
567
  * @returns {Promise<unknown>} La réponse de l'API après création de la demande
566
568
  * @throws {ApiError} Si l'utilisateur n'est pas connecté, pas admin, ou si le parent n'est pas défini
567
569
  * @throws {ApiError} Si l'utilisateur est déjà en attente de validation
@@ -569,14 +571,19 @@ export declare class User extends BaseEntity<UserItemNormalized> {
569
571
  *
570
572
  * @example
571
573
  * ```typescript
572
- * // Un admin récupère les membres et envoie une invitation
574
+ * // Un admin récupère les membres et envoie une invitation (type par défaut)
573
575
  * const org = await me.organization({ slug: "myOrg" });
574
576
  * const users = await org.getMembers();
575
577
  * const user = users.results[0];
576
578
  * await user.sendRequestToJoinParent();
579
+ *
580
+ * // Avec le type admin explicite
581
+ * await user.sendRequestToJoinParent({ admin: true });
577
582
  * ```
578
583
  */
579
- sendRequestToJoinParent(): Promise<unknown>;
584
+ sendRequestToJoinParent({ admin }?: {
585
+ admin: boolean;
586
+ }): Promise<unknown>;
580
587
  /**
581
588
  * Valide une demande de membre en attente de validation.
582
589
  *