@communecter/cocolight-api-client 1.0.117 → 1.0.119

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.117",
3
+ "version": "1.0.119",
4
4
  "description": "Client Axios simplifié pour l'API cocolight",
5
5
  "repository": {
6
6
  "type": "git",
@@ -3826,17 +3826,26 @@ export class BaseEntity<TServerData = any> {
3826
3826
 
3827
3827
  /**
3828
3828
  * Vérifie si l'utilisateur est l'auteur de l'entité.
3829
- *
3829
+ * @param options - Options de vérification.
3830
+ * @param options.silent - Si `true`, retourne `false` au lieu de lever une exception. Par défaut `true`.
3830
3831
  * @returns - `true` si l'utilisateur est l'auteur, `false` sinon.
3831
3832
  * @throws {ApiError} - Si l'utilisateur n'est pas connecté ou si les données du serveur ne sont pas disponibles.
3832
3833
  */
3833
- isAuthor(): boolean {
3834
- this._checkAccess("vérifier l'auteur");
3835
- if (!this.serverData) {
3836
- throw new ApiError("Aucune donnée serveur disponible.", 404);
3837
- }
3838
- if (!this.userId) {
3839
- throw new ApiError("Utilisateur non connecté.", 401);
3834
+ isAuthor(options?: { silent?: boolean }): boolean {
3835
+
3836
+ const silent = options?.silent ?? true;
3837
+
3838
+ try {
3839
+ this._checkAccess("vérifier l'auteur");
3840
+ if (!this.serverData) {
3841
+ throw new ApiError("Aucune donnée serveur disponible.", 404);
3842
+ }
3843
+ if (!this.userId) {
3844
+ throw new ApiError("Utilisateur non connecté.", 401);
3845
+ }
3846
+ } catch (e) {
3847
+ if (silent) return false;
3848
+ throw e;
3840
3849
  }
3841
3850
 
3842
3851
  const sd: { creator?: string | null } = this.serverData;
@@ -3950,12 +3959,15 @@ export class BaseEntity<TServerData = any> {
3950
3959
  * @throws {ApiError} - Si `silent` est `false` et que les préconditions ne sont pas remplies.
3951
3960
  */
3952
3961
  isFollower(options?: { silent?: boolean }): boolean {
3953
- const userLink = this._getValidatedUserLink(
3954
- "vérifier si il vous suit",
3955
- ["citoyens", "organizations", "projects", "events", "poi"],
3956
- { silent: options?.silent }
3957
- );
3958
- if (!userLink) return false;
3962
+ const silent = options?.silent ?? true;
3963
+ const expectedTypes = ["citoyens", "organizations", "projects", "events", "poi"];
3964
+ try {
3965
+ this._checkAccess("vérifier si il vous suit");
3966
+ this._assertEntityType(...expectedTypes);
3967
+ } catch (e) {
3968
+ if (silent) return false;
3969
+ throw e;
3970
+ }
3959
3971
  return this._isLinked("followers");
3960
3972
  }
3961
3973
 
@@ -3968,12 +3980,15 @@ export class BaseEntity<TServerData = any> {
3968
3980
  * @throws {ApiError} - Si `silent` est `false` et que les préconditions ne sont pas remplies.
3969
3981
  */
3970
3982
  isFollowing(options?: { silent?: boolean }): boolean {
3971
- const userLink = this._getValidatedUserLink(
3972
- "vérifier si vous le suivez",
3973
- ["citoyens", "organizations", "projects", "events", "poi"],
3974
- { silent: options?.silent }
3975
- );
3976
- if (!userLink) return false;
3983
+ const silent = options?.silent ?? true;
3984
+ const expectedTypes = ["citoyens", "organizations", "projects", "events", "poi"];
3985
+ try {
3986
+ this._checkAccess("vérifier si vous le suivez");
3987
+ this._assertEntityType(...expectedTypes);
3988
+ } catch (e) {
3989
+ if (silent) return false;
3990
+ throw e;
3991
+ }
3977
3992
  return this._isLinked("follows");
3978
3993
  }
3979
3994
 
package/src/api/News.ts CHANGED
@@ -457,7 +457,8 @@ export class News extends BaseEntity<NewsItemNormalized> {
457
457
  * Cette méthode compare l'ID de l'utilisateur connecté avec l'ID de l'auteur
458
458
  * de l'actualité. L'auteur peut être soit un objet simple NewsAuthor, soit
459
459
  * une instance d'entité User ou Organization.
460
- *
460
+ * @param options - Options de vérification.
461
+ * @param options.silent - Si `true`, retourne `false` au lieu de lever une exception. Par défaut `true`.
461
462
  * @returns `true` si l'utilisateur connecté est l'auteur, `false` sinon
462
463
  * @throws {ApiError} Si l'utilisateur n'est pas connecté (401)
463
464
  * @throws {ApiError} Si l'actualité n'a pas d'ID - non enregistrée (404)
@@ -474,18 +475,25 @@ export class News extends BaseEntity<NewsItemNormalized> {
474
475
  * }
475
476
  * ```
476
477
  */
477
- override isAuthor(): boolean {
478
- if (!this.isMe) {
479
- throw new ApiError("Vous devez être connecté pour vérifier l'auteur.", 401);
480
- }
481
- if (!this.id) {
482
- throw new ApiError(`${this.constructor.name} non enregistrée.`, 404);
483
- }
484
- if (!this.serverData) {
485
- throw new ApiError("Aucune donnée serveur disponible.", 404);
486
- }
487
- if (!this.userId) {
488
- throw new ApiError("Utilisateur non connecté.", 401);
478
+ override isAuthor(options?: { silent?: boolean }): boolean {
479
+ const silent = options?.silent ?? true;
480
+
481
+ try {
482
+ if (!this.isMe) {
483
+ throw new ApiError("Vous devez être connecté pour vérifier l'auteur.", 401);
484
+ }
485
+ if (!this.id) {
486
+ throw new ApiError(`${this.constructor.name} non enregistrée.`, 404);
487
+ }
488
+ if (!this.serverData) {
489
+ throw new ApiError("Aucune donnée serveur disponible.", 404);
490
+ }
491
+ if (!this.userId) {
492
+ throw new ApiError("Utilisateur non connecté.", 401);
493
+ }
494
+ } catch (e) {
495
+ if (silent) return false;
496
+ throw e;
489
497
  }
490
498
 
491
499
  const author = this.serverData.author;
package/src/api/User.ts CHANGED
@@ -858,31 +858,46 @@ export class User extends BaseEntity<UserItemNormalized> {
858
858
 
859
859
  /**
860
860
  * Vérifie si l'utilisateur connecté est ami avec cet utilisateur.
861
- *
861
+ * @param options - Options de vérification.
862
+ * @param options.silent - Si `true`, retourne `false` au lieu de lever une exception. Par défaut `true`.
862
863
  * @returns - True si l'utilisateur connecté est ami, sinon false.
863
864
  * @throws {ApiError} - Si l'utilisateur n'est pas connecté.
864
865
  */
865
- isFriend(): boolean {
866
- if (!this.isActingUser) {
867
- throw new ApiError("Vous devez être connecté pour vérifier si vous êtes ami.", 401);
866
+ isFriend(options?: { silent?: boolean }): boolean {
867
+ const silent = options?.silent ?? true;
868
+ try {
869
+ if (!this.isActingUser) {
870
+ throw new ApiError("Vous devez être connecté pour vérifier si vous êtes ami.", 401);
871
+ }
872
+ } catch (e) {
873
+ if (silent) return false;
874
+ throw e;
868
875
  }
869
876
  this._assertEntityType("citoyens");
870
877
  const userLink = this._getLinkFromConnectedUser();
878
+ if(!userLink) return false;
871
879
  return this._validateUserLink(userLink);
872
880
  }
873
881
 
874
882
  /**
875
883
  * Vérifie si l'utilisateur suit l'entité.
876
- *
884
+ * @param options - Options de vérification.
885
+ * @param options.silent - Si `true`, retourne `false` au lieu de lever une exception. Par défaut `true`.
877
886
  * @returns - `true` si l'utilisateur suit l'entité, `false` sinon.
878
887
  * @throws {ApiError}
879
888
  */
880
- override isFollower(): boolean {
881
- if (!this.isActingUser) {
882
- throw new ApiError("Vous devez être connecté pour vérifier si il vous suit.", 401);
883
- }
884
- if (!this.id) {
885
- throw new ApiError(`${this.constructor.name} non enregistrée.`, 404);
889
+ override isFollower(options?: { silent?: boolean }): boolean {
890
+ const silent = options?.silent ?? true;
891
+ try {
892
+ if (!this.isActingUser) {
893
+ throw new ApiError("Vous devez être connecté pour vérifier si il vous suit.", 401);
894
+ }
895
+ if (!this.id) {
896
+ throw new ApiError(`${this.constructor.name} non enregistrée.`, 404);
897
+ }
898
+ } catch (e) {
899
+ if (silent) return false;
900
+ throw e;
886
901
  }
887
902
  this._assertEntityType("citoyens");
888
903
  return this._isLinked("followers");
@@ -890,16 +905,23 @@ export class User extends BaseEntity<UserItemNormalized> {
890
905
 
891
906
  /**
892
907
  * Vérifie si l'utilisateur est abonné à l'entité.
893
- *
908
+ * @param options - Options de vérification.
909
+ * @param options.silent - Si `true`, retourne `false` au lieu de lever une exception. Par défaut `true`.
894
910
  * @returns - `true` si l'utilisateur est abonné, `false` sinon.
895
911
  * @throws {ApiError}
896
912
  */
897
- override isFollowing(): boolean {
898
- if (!this.isActingUser) {
899
- throw new ApiError("Vous devez être connecté pour vérifier si vous le suivez.", 401);
900
- }
901
- if (!this.id) {
902
- throw new ApiError(`${this.constructor.name} non enregistrée.`, 404);
913
+ override isFollowing(options?: { silent?: boolean }): boolean {
914
+ const silent = options?.silent ?? true;
915
+ try {
916
+ if (!this.isActingUser) {
917
+ throw new ApiError("Vous devez être connecté pour vérifier si vous le suivez.", 401);
918
+ }
919
+ if (!this.id) {
920
+ throw new ApiError(`${this.constructor.name} non enregistrée.`, 404);
921
+ }
922
+ } catch (e) {
923
+ if (silent) return false;
924
+ throw e;
903
925
  }
904
926
  this._assertEntityType("citoyens");
905
927
  return this._isLinked("follows");
@@ -1310,11 +1310,14 @@ export declare class BaseEntity<TServerData = any> {
1310
1310
  protected _isLinked(linkType: string): boolean;
1311
1311
  /**
1312
1312
  * Vérifie si l'utilisateur est l'auteur de l'entité.
1313
- *
1313
+ * @param options - Options de vérification.
1314
+ * @param options.silent - Si `true`, retourne `false` au lieu de lever une exception. Par défaut `true`.
1314
1315
  * @returns - `true` si l'utilisateur est l'auteur, `false` sinon.
1315
1316
  * @throws {ApiError} - Si l'utilisateur n'est pas connecté ou si les données du serveur ne sont pas disponibles.
1316
1317
  */
1317
- isAuthor(): boolean;
1318
+ isAuthor(options?: {
1319
+ silent?: boolean;
1320
+ }): boolean;
1318
1321
  /**
1319
1322
  * Vérifie si l'utilisateur est administrateur de l'entité.
1320
1323
  *
@@ -120,7 +120,8 @@ export declare class News extends BaseEntity<NewsItemNormalized> {
120
120
  * Cette méthode compare l'ID de l'utilisateur connecté avec l'ID de l'auteur
121
121
  * de l'actualité. L'auteur peut être soit un objet simple NewsAuthor, soit
122
122
  * une instance d'entité User ou Organization.
123
- *
123
+ * @param options - Options de vérification.
124
+ * @param options.silent - Si `true`, retourne `false` au lieu de lever une exception. Par défaut `true`.
124
125
  * @returns `true` si l'utilisateur connecté est l'auteur, `false` sinon
125
126
  * @throws {ApiError} Si l'utilisateur n'est pas connecté (401)
126
127
  * @throws {ApiError} Si l'actualité n'a pas d'ID - non enregistrée (404)
@@ -137,5 +138,7 @@ export declare class News extends BaseEntity<NewsItemNormalized> {
137
138
  * }
138
139
  * ```
139
140
  */
140
- isAuthor(): boolean;
141
+ isAuthor(options?: {
142
+ silent?: boolean;
143
+ }): boolean;
141
144
  }
@@ -318,25 +318,34 @@ export declare class User extends BaseEntity<UserItemNormalized> {
318
318
  unfollow(): Promise<unknown>;
319
319
  /**
320
320
  * Vérifie si l'utilisateur connecté est ami avec cet utilisateur.
321
- *
321
+ * @param options - Options de vérification.
322
+ * @param options.silent - Si `true`, retourne `false` au lieu de lever une exception. Par défaut `true`.
322
323
  * @returns - True si l'utilisateur connecté est ami, sinon false.
323
324
  * @throws {ApiError} - Si l'utilisateur n'est pas connecté.
324
325
  */
325
- isFriend(): boolean;
326
+ isFriend(options?: {
327
+ silent?: boolean;
328
+ }): boolean;
326
329
  /**
327
330
  * Vérifie si l'utilisateur suit l'entité.
328
- *
331
+ * @param options - Options de vérification.
332
+ * @param options.silent - Si `true`, retourne `false` au lieu de lever une exception. Par défaut `true`.
329
333
  * @returns - `true` si l'utilisateur suit l'entité, `false` sinon.
330
334
  * @throws {ApiError}
331
335
  */
332
- isFollower(): boolean;
336
+ isFollower(options?: {
337
+ silent?: boolean;
338
+ }): boolean;
333
339
  /**
334
340
  * Vérifie si l'utilisateur est abonné à l'entité.
335
- *
341
+ * @param options - Options de vérification.
342
+ * @param options.silent - Si `true`, retourne `false` au lieu de lever une exception. Par défaut `true`.
336
343
  * @returns - `true` si l'utilisateur est abonné, `false` sinon.
337
344
  * @throws {ApiError}
338
345
  */
339
- isFollowing(): boolean;
346
+ isFollowing(options?: {
347
+ silent?: boolean;
348
+ }): boolean;
340
349
  /**
341
350
  * Retourne une entité à partir d'un slug.
342
351
  * @param slug - Le slug de l'entité à récupérer.