@communecter/cocolight-api-client 1.0.83 → 1.0.85

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.83",
3
+ "version": "1.0.85",
4
4
  "description": "Client Axios simplifié pour l'API cocolight",
5
5
  "repository": {
6
6
  "type": "git",
package/src/api/Badge.ts CHANGED
@@ -86,7 +86,7 @@ export class Badge extends BaseEntity<any> {
86
86
  }
87
87
 
88
88
 
89
- async getEvents(): Promise<never> {
89
+ override async getEvents(): Promise<never> {
90
90
  throw new ApiError(`getEvents n'existe pas dans ${this.constructor.name}`, 501);
91
91
  }
92
92
 
@@ -43,7 +43,8 @@ import type {
43
43
  GetBadgesData,
44
44
  CoformAnswersSearchData,
45
45
  ProfilBannerData,
46
- SearchMemberAutocompleteData
46
+ SearchMemberAutocompleteData,
47
+ GetEventsData
47
48
  } from "./EndpointApi.types.js";
48
49
  import type { GetElementsKeyResponse } from "../types/api-responses.js";
49
50
  import type { TransformsMap } from "../types/entities.js";
@@ -3046,6 +3047,33 @@ export class BaseEntity<TServerData = any> {
3046
3047
  return paginator.next() as Promise<PaginatorPage<Project>>;
3047
3048
  }
3048
3049
 
3050
+ /**
3051
+ * Récupérer les événements d'une entitée : liste des événements de l'entité ou elle est "organizer" ou "attendee".
3052
+ * Constant : GET_EVENTS
3053
+ * @param data - Paramètres (partiels) de recherche/pagination.
3054
+ * @returns - Les données de réponse.
3055
+ */
3056
+ async getEvents(data: Partial<GetEventsData> = {}): Promise<PaginatorPage<EventEntity>> {
3057
+ data.searchType = this._getDefaultFromEndpoint("GET_EVENTS", "searchType") as GetEventsData["searchType"];
3058
+ const paginator = this._createPaginatorEngine({
3059
+ initialData: data,
3060
+ finalizer: async (finalData) => {
3061
+ delete finalData?.pathParams;
3062
+ finalData.filters = {
3063
+ "$or": {
3064
+ [`links.attendees.${this.id}`]: { "$exists": true },
3065
+ [`organizer.${this.id}`]: { "$exists": true }
3066
+ },
3067
+ [`links.attendees.${this.id}`]: { "$exists": true }
3068
+ };
3069
+
3070
+ return this.endpointApi.getEvents(finalData);
3071
+ }
3072
+ });
3073
+
3074
+ return paginator.next() as Promise<PaginatorPage<EventEntity>>;
3075
+ }
3076
+
3049
3077
  /**
3050
3078
  * Récupérer les POIs d'une entité : liste des POIs de l'entité ou elle est "parent".
3051
3079
  * Constant : GET_POIS_NO_ADMIN / GET_POIS_ADMIN
@@ -3732,17 +3732,13 @@ export interface AssignBadgesData {
3732
3732
 
3733
3733
 
3734
3734
  export interface GetEventsData {
3735
- searchType: string[];
3735
+ searchType: "events"[];
3736
3736
  indexMin: number;
3737
3737
  indexStep: number;
3738
- /**
3739
- * Timestamp de début
3740
- */
3741
- startDate: number;
3742
3738
  /**
3743
3739
  * Date de début (UTC)
3744
3740
  */
3745
- startDateUTC: string;
3741
+ startDateUTC?: string;
3746
3742
  /**
3747
3743
  * Date de fin (UTC)
3748
3744
  */
@@ -3790,6 +3786,18 @@ export interface GetEventsData {
3790
3786
  count?: boolean;
3791
3787
  countType?: unknown[];
3792
3788
  fediverse: boolean;
3789
+ /**
3790
+ * Filtrer les événements récurrents (true/false)
3791
+ */
3792
+ recurrency?: boolean;
3793
+ filters?: {
3794
+ $or?: Record<string, unknown>;
3795
+ /**
3796
+ * This interface was referenced by `undefined`'s JSON-Schema definition
3797
+ * via the `patternProperty` "^links\.attendees\.(?:[a-f0-9]{24}|@\w+)$".
3798
+ */
3799
+ [k: string]: unknown;
3800
+ };
3793
3801
  [k: string]: unknown;
3794
3802
  }
3795
3803
 
package/src/api/Event.ts CHANGED
@@ -140,7 +140,7 @@ export class Event extends BaseEntity<EventItemNormalized> {
140
140
  }
141
141
 
142
142
 
143
- async getEvents(): Promise<never> {
143
+ override async getEvents(): Promise<never> {
144
144
  throw new ApiError(`getEvents - les sous-events ne sont pas encore implémentés dans ${this.constructor.name}`, 501);
145
145
  }
146
146
 
@@ -222,7 +222,7 @@ export class Event extends BaseEntity<EventItemNormalized> {
222
222
  const { toBeValidated, isAdmin, isInviting, isAdminPending, roles = [] } = options;
223
223
 
224
224
  if(this.isMe){
225
- finalData.pathParams = { type: this.getEntityType(), id: this.id };
225
+ finalData.pathParams = { id: this.id };
226
226
  // NOTE : dans le schema je crois que si pas de finalData.filters alors le default ce fait avec finalData.pathParams
227
227
  // finalData.filters = {
228
228
  // [`links.events.${this.id}`]: { "$exists": true },
@@ -225,10 +225,14 @@ export class Organization extends BaseEntity<OrganizationItemNormalized> {
225
225
  return super.getProjects(data);
226
226
  }
227
227
 
228
- // /** @override @returns {Promise<never>} */
229
- // async getEvents() {
230
- // throw new ApiError("getEvents pas encore implémenté dans Organization", 404);
231
- // }
228
+ /**
229
+ * {@inheritDoc BaseEntity#getEvents}
230
+ *
231
+ * Récupère les événements de l'organisation.
232
+ */
233
+ override async getEvents(data: Parameters<BaseEntity<OrganizationItemNormalized>["getEvents"]>[0] = {}) {
234
+ return super.getEvents(data);
235
+ }
232
236
 
233
237
  /**
234
238
  * {@inheritDoc BaseEntity#getPois}
package/src/api/Poi.ts CHANGED
@@ -116,7 +116,7 @@ export class Poi extends BaseEntity<any> {
116
116
  throw new ApiError(`getProjects n'existe pas dans ${this.constructor.name}`, 501);
117
117
  }
118
118
 
119
- async getEvents(): Promise<never> {
119
+ override async getEvents(): Promise<never> {
120
120
  throw new ApiError(`getEvents n'existe pas dans ${this.constructor.name}`, 501);
121
121
  }
122
122
 
@@ -152,9 +152,13 @@ export class Project extends BaseEntity<ProjectItemNormalized> {
152
152
  }
153
153
 
154
154
 
155
-
156
- async getEvents(): Promise<never> {
157
- throw new ApiError(`getEvents pas encore implémenté dans ${this.constructor.name}`, 501);
155
+ /**
156
+ * {@inheritDoc BaseEntity#getEvents}
157
+ *
158
+ * Récupère les événements d'un projet.
159
+ */
160
+ override async getEvents(data: Parameters<BaseEntity<ProjectItemNormalized>["getEvents"]>[0] = {}) {
161
+ return super.getEvents(data);
158
162
  }
159
163
 
160
164
  /**
@@ -243,7 +247,7 @@ export class Project extends BaseEntity<ProjectItemNormalized> {
243
247
  const { toBeValidated, isAdmin, isInviting, isAdminPending, roles = [] } = options;
244
248
 
245
249
  if(this.isMe){
246
- finalData.pathParams = { type: this.getEntityType(), id: this.id };
250
+ finalData.pathParams = { id: this.id };
247
251
  // NOTE : dans le schema je crois que si pas de finalData.filters alors le default ce fait avec finalData.pathParams
248
252
  // finalData.filters = {
249
253
  // [`links.projects.${this.id}`]: { "$exists": true },
package/src/api/User.ts CHANGED
@@ -412,6 +412,15 @@ export class User extends BaseEntity<UserItemNormalized> {
412
412
  return super.getProjects(data);
413
413
  }
414
414
 
415
+ /**
416
+ * {@inheritDoc BaseEntity#getEvents}
417
+ *
418
+ * Récupère les événements d'un utilisateur.
419
+ */
420
+ override async getEvents(data: Parameters<BaseEntity<UserItemNormalized>["getEvents"]>[0] = {}) {
421
+ return super.getEvents(data);
422
+ }
423
+
415
424
  /**
416
425
  * {@inheritDoc BaseEntity#getPois}
417
426
  *