@communecter/cocolight-api-client 1.0.150 → 1.0.152
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 +3 -2
- package/src/api/BaseEntity.ts +106 -5
- package/src/api/EndpointApi.ts +16 -1
- package/src/api/EndpointApi.types.ts +293 -202
- package/src/api/User.ts +13 -4
- package/src/api/UserApi.ts +16 -5
- package/src/costum/runtime.ts +65 -12
- package/src/endpoints.module.ts +370 -210
- package/types/api/BaseEntity.d.ts +56 -2
- package/types/api/EndpointApi.d.ts +10 -1
- package/types/api/EndpointApi.types.d.ts +91 -44
- package/types/api/User.d.ts +9 -2
- package/types/api/UserApi.d.ts +7 -1
- package/types/costum/runtime.d.ts +14 -5
- package/types/endpoints.module.d.ts +1634 -1086
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@communecter/cocolight-api-client",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.152",
|
|
4
4
|
"description": "Client Axios simplifié pour l'API cocolight",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -45,7 +45,8 @@
|
|
|
45
45
|
"generate:module:publish": "node ./scripts/transform-json-module.publish.js",
|
|
46
46
|
"generate:doc": "node ./scripts/generate-doc.js",
|
|
47
47
|
"generate:reponses": "node ./scripts/generate-constant-response-200.js",
|
|
48
|
-
"generate:methodeapi": "node ./scripts/generate-methode-api.js"
|
|
48
|
+
"generate:methodeapi": "node ./scripts/generate-methode-api.js",
|
|
49
|
+
"generate:costum": "node ./scripts/generate-costum-extensions.js"
|
|
49
50
|
},
|
|
50
51
|
"keywords": [
|
|
51
52
|
"communecter",
|
package/src/api/BaseEntity.ts
CHANGED
|
@@ -48,6 +48,7 @@ import type {
|
|
|
48
48
|
ProfilBannerData,
|
|
49
49
|
SearchMemberAutocompleteData,
|
|
50
50
|
GetEventsData,
|
|
51
|
+
SearchEventsCostumData,
|
|
51
52
|
CostumFilterCoformData,
|
|
52
53
|
CostumFilterCoformByPathData,
|
|
53
54
|
GetCountriesData,
|
|
@@ -261,6 +262,18 @@ export type CostumContextFields = {
|
|
|
261
262
|
|
|
262
263
|
export type WithCostumContext<T> = T & CostumContextFields;
|
|
263
264
|
|
|
265
|
+
/**
|
|
266
|
+
* Bornes d'agenda acceptant un `Date` (coercé en ISO par la méthode avant l'envoi — le fil reste
|
|
267
|
+
* `type:string`). Partagé par `searchEventsCostum` et `getEvents`.
|
|
268
|
+
*/
|
|
269
|
+
type AgendaDateInputs = { startDateUTC?: Date | string; endDateUTC?: Date | string };
|
|
270
|
+
/** Entrée de `searchEventsCostum` : la request, mais les bornes acceptent un `Date`. */
|
|
271
|
+
export type SearchEventsCostumInput =
|
|
272
|
+
Omit<Partial<SearchEventsCostumData>, keyof AgendaDateInputs> & AgendaDateInputs;
|
|
273
|
+
/** Entrée de `getEvents` : la request, mais les bornes acceptent un `Date`. */
|
|
274
|
+
export type GetEventsInput =
|
|
275
|
+
Omit<Partial<GetEventsData>, keyof AgendaDateInputs> & AgendaDateInputs;
|
|
276
|
+
|
|
264
277
|
/**
|
|
265
278
|
* Une valeur distincte d'une thématique CoForm (retournée par `coformFilterByPath`).
|
|
266
279
|
*/
|
|
@@ -803,7 +816,11 @@ export class BaseEntity<TServerData = any> {
|
|
|
803
816
|
const v = fullData[key];
|
|
804
817
|
const isClear = v === null || v === "" || (Array.isArray(v) && v.length === 0);
|
|
805
818
|
changed[key] = isClear ? "" : v; // clear → "" : survit à stripNulls, backend prepElementData → $unset
|
|
806
|
-
|
|
819
|
+
// Schéma porté dans l'enveloppe (validation AJV de requête). Pour un EFFACEMENT, on envoie le sentinel
|
|
820
|
+
// "" : le schéma STRICT du champ (ex. socialNetwork = objet, openingHours = array) rejetterait "" →
|
|
821
|
+
// "Request validation failed". On porte donc un schéma PERMISSIF ({}) pour la clé effacée (le "" est le
|
|
822
|
+
// sentinel voulu ; le backend prepElementData fait le $unset). Sinon, schéma réel du champ.
|
|
823
|
+
props[key] = isClear ? {} : (this._lookupPropSchema(combined, key) ?? (costumProps[key] as unknown) ?? {});
|
|
807
824
|
}
|
|
808
825
|
|
|
809
826
|
let didSave = false;
|
|
@@ -2901,7 +2918,23 @@ export class BaseEntity<TServerData = any> {
|
|
|
2901
2918
|
*/
|
|
2902
2919
|
async entity<T extends keyof EntityTypeMap>(entityType: T, entityData: object = {}, config: BaseEntityConfig = {}): Promise<EntityTypeMap[T]> {
|
|
2903
2920
|
try {
|
|
2904
|
-
|
|
2921
|
+
// Propagation du scope costum aux ENFANTS créés (chaîne `scope.org().project()` / parent-create
|
|
2922
|
+
// `parent.poi()`) : si CE parent porte un `_costumCtx` et que l'appelant n'a PAS fourni de costumCtx
|
|
2923
|
+
// explicite, l'enfant hérite de l'IDENTITÉ (slug/costumId/costumType = source.key) MAIS avec l'overlay
|
|
2924
|
+
// de champs RE-RÉSOLU pour SA collection (un projet ne reçoit pas les champs d'une org). Création
|
|
2925
|
+
// seulement (un load id/slug fait foi via _setData/source.key).
|
|
2926
|
+
let effectiveConfig = config;
|
|
2927
|
+
if (config.costumCtx === undefined && this._costumCtx && !this._hasAtLeastOne(entityData, ["id", "slug"])) {
|
|
2928
|
+
const p = this._costumCtx;
|
|
2929
|
+
const childCollection = entityType as unknown as Collection;
|
|
2930
|
+
const childCtx: CostumRuntimeContext = resolveCostumCtxFromSource(p.slug, childCollection) ?? {
|
|
2931
|
+
slug: p.slug, costumId: p.costumId, costumType: p.costumType, collection: childCollection,
|
|
2932
|
+
schema: { type: "object", additionalProperties: true, properties: {} },
|
|
2933
|
+
fields: [], presets: {}, hidden: [],
|
|
2934
|
+
};
|
|
2935
|
+
effectiveConfig = { ...config, costumCtx: childCtx };
|
|
2936
|
+
}
|
|
2937
|
+
const entity = this._entityInstanceData(entityType, entityData, effectiveConfig);
|
|
2905
2938
|
|
|
2906
2939
|
const fetchKeysByEntity = {
|
|
2907
2940
|
citoyens: ["id", "slug"],
|
|
@@ -4111,16 +4144,24 @@ export class BaseEntity<TServerData = any> {
|
|
|
4111
4144
|
/**
|
|
4112
4145
|
* Récupérer les événements d'une entitée : liste des événements de l'entité ou elle est "organizer" ou "attendee".
|
|
4113
4146
|
* Constant : GET_EVENTS
|
|
4147
|
+
* `startDateUTC`/`endDateUTC` acceptent un `Date` ou une string ISO (un `Date` est coercé en ISO).
|
|
4148
|
+
* `recurrency` est typé `false` (garde parité, comme `searchEventsCostum`) : omettre (récurrents inclus
|
|
4149
|
+
* en mode calendrier) ou passer `false` (exclure) ; jamais `true` (le legacy `=== true` l'exclurait → divergence).
|
|
4114
4150
|
* @param data - Paramètres (partiels) de recherche/pagination.
|
|
4115
4151
|
* @returns - Les données de réponse.
|
|
4116
4152
|
*/
|
|
4117
4153
|
async getEvents(
|
|
4118
|
-
data:
|
|
4154
|
+
data: GetEventsInput = {},
|
|
4119
4155
|
options?: { restoredState?: PaginatorState }
|
|
4120
4156
|
): Promise<PaginatorPage<EventEntity>> {
|
|
4121
|
-
|
|
4157
|
+
// DX : `startDateUTC`/`endDateUTC` acceptent un `Date` → coercé en ISO (un Date brut échouerait l'AJV
|
|
4158
|
+
// `type:string`). Cf. convention R0 de normalisation de champs.
|
|
4159
|
+
const finalInput: Partial<GetEventsData> = { ...(data as Partial<GetEventsData>) };
|
|
4160
|
+
if (data.startDateUTC instanceof Date) finalInput.startDateUTC = data.startDateUTC.toISOString();
|
|
4161
|
+
if (data.endDateUTC instanceof Date) finalInput.endDateUTC = data.endDateUTC.toISOString();
|
|
4162
|
+
finalInput.searchType = this._getDefaultFromEndpoint("GET_EVENTS", "searchType") as GetEventsData["searchType"];
|
|
4122
4163
|
const paginator = this._createPaginatorEngine({
|
|
4123
|
-
initialData:
|
|
4164
|
+
initialData: finalInput,
|
|
4124
4165
|
methodName: "getEvents",
|
|
4125
4166
|
restoredState: options?.restoredState,
|
|
4126
4167
|
finalizer: async (finalData) => {
|
|
@@ -5257,6 +5298,66 @@ export class BaseEntity<TServerData = any> {
|
|
|
5257
5298
|
return page;
|
|
5258
5299
|
}
|
|
5259
5300
|
|
|
5301
|
+
/**
|
|
5302
|
+
* Agenda costum-aware : events scopés au costum (`source.key`) — pendant de `searchCostum` pour les events.
|
|
5303
|
+
* `_withCostumContext` injecte `costumSlug`/`contextId`/`contextType` + `sourceKey=[serverData.slug]` → les
|
|
5304
|
+
* events DU site/hôte costum (au lieu du filtre attendees/organizer FORCÉ de `getEvents`). À appeler sur
|
|
5305
|
+
* l'entité HÔTE du costum (ex. l'entité du déploiement). `sourceKey` surchargeable (agenda multi-sites / réseau).
|
|
5306
|
+
*
|
|
5307
|
+
* **Deux modes** (endpoint `/co2/search/agenda`), selon que tu passes une date ou non :
|
|
5308
|
+
*
|
|
5309
|
+
* 1. **CALENDRIER** — déclenché par `startDateUTC` et/ou `endDateUTC` (l'agenda d'une période) :
|
|
5310
|
+
* ramène **TOUT** ce qui matche la plage — ponctuels **+ récurrents** (`openingHours`, sauf `recurrency:false`) —
|
|
5311
|
+
* trié par **occurrence** (`startDateSort`/`startDateSortFormat` calculés côté serveur), résultat = **tableau**.
|
|
5312
|
+
* **Pas de pagination** serveur : une seule page (`next()`/`prev()` sans effet).
|
|
5313
|
+
* 2. **LISTE** — déclenché par l'**absence** de date (flux paginé) :
|
|
5314
|
+
* **ponctuels uniquement** (récurrents exclus), triés par `startDate` **décroissant** (plus récents d'abord),
|
|
5315
|
+
* paginés via `indexMin`/`indexStep` (défaut 30) — `next()`/`prev()` fonctionnent. (Backend : objet keyé `_id`,
|
|
5316
|
+
* hydraté en tableau d'`Event` côté lib.)
|
|
5317
|
+
*
|
|
5318
|
+
* Le scope costum (`sourceKey`) s'applique dans les **deux** modes.
|
|
5319
|
+
*
|
|
5320
|
+
* `recurrency` est typé `false` (garde parité) : **omettre** (mode calendrier → récurrents inclus) ou passer
|
|
5321
|
+
* `false` (exclure) ; **jamais `true`** — le legacy fait un test strict `=== true` qui exclurait les récurrents
|
|
5322
|
+
* (divergence), valeur donc interdite au type **et** à l'AJV.
|
|
5323
|
+
*
|
|
5324
|
+
* `startDateUTC`/`endDateUTC` acceptent un **`Date` ou une string ISO** : un `Date` est coercé en ISO
|
|
5325
|
+
* (`toISOString()`) avant l'envoi (le fil reste `type:string`). Évite le piège de l'ISO partielle
|
|
5326
|
+
* (`"2026-06-01"` n'est pas un `date-time` AJV valide).
|
|
5327
|
+
*
|
|
5328
|
+
// Mode CALENDRIER — agenda du mois, avec de vrais Date
|
|
5329
|
+
* const debut = new Date("2026-06-01T00:00:00Z");
|
|
5330
|
+
* const page = await org.searchEventsCostum({ startDateUTC: debut, endDateUTC: new Date("2026-06-30T23:59:59Z") });
|
|
5331
|
+
* page.results.forEach((e) => console.log(e.serverData.name, e.serverData.startDateSort));
|
|
5332
|
+
*
|
|
5333
|
+
// Mode LISTE — flux paginé (ponctuels, du plus récent)
|
|
5334
|
+
* let p = await org.searchEventsCostum({ indexStep: 20 });
|
|
5335
|
+
* if (p.hasNext) p = await p.next();
|
|
5336
|
+
*/
|
|
5337
|
+
async searchEventsCostum(
|
|
5338
|
+
data: SearchEventsCostumInput = {},
|
|
5339
|
+
options?: { restoredState?: PaginatorState }
|
|
5340
|
+
): Promise<PaginatorPage<EventEntity>> {
|
|
5341
|
+
// DX : coerce les `Date` en ISO (un objet Date échouerait la validation AJV `type:string`) — suit
|
|
5342
|
+
// la convention de normalisation de champs de la lib (R0 : `Date` → `toISOString()`).
|
|
5343
|
+
const finalInput: Partial<SearchEventsCostumData> = { ...(data as Partial<SearchEventsCostumData>) };
|
|
5344
|
+
if (data.startDateUTC instanceof Date) finalInput.startDateUTC = data.startDateUTC.toISOString();
|
|
5345
|
+
if (data.endDateUTC instanceof Date) finalInput.endDateUTC = data.endDateUTC.toISOString();
|
|
5346
|
+
finalInput.searchType = this._getDefaultFromEndpoint("SEARCH_EVENTS_COSTUM", "searchType") as SearchEventsCostumData["searchType"];
|
|
5347
|
+
const paginator = this._createPaginatorEngine({
|
|
5348
|
+
initialData: finalInput,
|
|
5349
|
+
methodName: "searchEventsCostum",
|
|
5350
|
+
restoredState: options?.restoredState,
|
|
5351
|
+
finalizer: this._withCostumContext(
|
|
5352
|
+
(finalData: SearchEventsCostumData) => {
|
|
5353
|
+
delete (finalData as { pathParams?: unknown }).pathParams;
|
|
5354
|
+
return this.endpointApi.searchEventsCostum(finalData);
|
|
5355
|
+
}
|
|
5356
|
+
),
|
|
5357
|
+
});
|
|
5358
|
+
return paginator.next() as Promise<PaginatorPage<EventEntity>>;
|
|
5359
|
+
}
|
|
5360
|
+
|
|
5260
5361
|
/**
|
|
5261
5362
|
* @param data
|
|
5262
5363
|
* Paramètres de recherche (partiels — les valeurs manquantes sont complétées
|
package/src/api/EndpointApi.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { ApiAuthenticationError } from "../error.js";
|
|
3
3
|
|
|
4
4
|
import type ApiClient from "../ApiClient.js";
|
|
5
|
-
import type { DocumentListData, PersonRegisterData, AuthenticateUrlData, RefreshTokenUrlData, PasswordRecoveryData, ServerExchangeTokenData, ChangePasswordData, DeleteAccountData, UpdateSettingsData, UpdateBlockDescriptionData, UpdateBlockInfoData, UpdateBlockSocialData, UpdateBlockLocalityData, UpdateBlockSlugData, CheckData, ProfilImageData, ProfilBannerData, GetElementsAboutData, MulticonnectData, GetNewsData, GetNewsByIdData, AddNewsData, AddImageNewsData, AddFileNewsData, DeleteNewsData, UpdateNewsData, ShareNewsData, GetCommentsData, AddCommentsData, DeleteCommentsData, UpdateCommentsData, SearchTagsData, ShowVoteData, GlobalAutocompleteData, CityAutocompleteData, CityAutocompleteByCountryData, SuggestionInputData, GetProjectsNoAdminData, GetProjectsAdminData, GetPoisNoAdminData, GetPoisAdminData, GetOrganizationsNoAdminData, GetOrganizationsAdminData, GetUserEligiblePlacesData, GetMembersNoAdminData, GetMembersAdminData, GetFriendsAdminData, GetSubscriptionsData, GetSubscriptionsAdminData, GetSubscribersData, GetSubscribersAdminData, GetContributorsNoAdminData, GetContributorsAdminData, GetBadgesData, GetBadgesFiltersData, ConnectData, DisconnectData, GetElementsKeyData, GetFavorisData, DeleteFavorisData, AddFavorisData, AddOrganizationData, AddProjectData, AddPoiData, AddEventData, DeleteElementData, AddImageElementData, LinkValidateData, SearchMemberAutocompleteData, GetNotificationsData, GetNotificationsCountData, NotificationUpdateData, MarkNotificationAsReadData, ActivitypubSearchData, ActivitypubLinkData, ActivitypubGetCommunityData, GetBadgeData, AddBadgesData, AssignBadgesData, GetEventsData, ShareEventsData, InviteEventData, FollowData, GetCostumJsonData, GlobalAutocompleteCostumData, NavigatorGettlData, CostumEventRequestActorsData, CostumEventRequestSubeventsData, CostumEventRequestElementEventData, CostumEventRequestCategoriesData, CostumEventRequestDatesData, CostumEventRequestEventData, CostumEventRequestLinkTlToEventData, CostumEventRequestLoadContextTagData, GetGalleryData, GetAttendeesNoAdminData, GetAttendeesAdminData, CoformAnswersSearchData, CoformAnswersByIdData, GetCoformByIdData, CoformUploadAnswerFileData, CoformGetAnswerFilesData, GetCoformCatalogsData, SaveCoformAnswerData, GetCoformAnswerHistoryData, GetCoformMultievalDataData, GetCoformCommontableContributorsData, AddVoteData, AddReportAbuseData, UpdatePathValueData, DeleteDocumentByContextData, DeleteDocumentByIdData, DemoteAdminData, CostumFilterCoformData, CostumFilterCoformByPathData, GetCountriesData, SearchZonesData, CoformAnswersByFormsData, GenerateAnswerFromFormData, FundingEnvelopeData, CoremuOperationData, CostumProjectActionRequestNewData, CostumProjectActionRequestSetStatusData, CostumProjectActionRequestSetDateData, CostumProjectActionRequestSetContributorsData, CostumProjectActionRequestCancelData, CostumProjectActionRequestArchiveData, LinkDiscourseAccountData, UnlinkDiscourseAccountData, DiscourseProfileData, DiscourseCheckEmailData, DiscourseDismissLinkData, LinkMediawikiAccountData, UnlinkMediawikiAccountData, GetMediawikiContributionsData, AddClassifiedData, PersonActivateData } from "./EndpointApi.types.js";
|
|
5
|
+
import type { DocumentListData, PersonRegisterData, AuthenticateUrlData, RefreshTokenUrlData, PasswordRecoveryData, ServerExchangeTokenData, ChangePasswordData, DeleteAccountData, UpdateSettingsData, UpdateBlockDescriptionData, UpdateBlockInfoData, UpdateBlockSocialData, UpdateBlockLocalityData, UpdateBlockSlugData, CheckData, ProfilImageData, ProfilBannerData, GetElementsAboutData, MulticonnectData, GetNewsData, GetNewsByIdData, AddNewsData, AddImageNewsData, AddFileNewsData, DeleteNewsData, UpdateNewsData, ShareNewsData, GetCommentsData, AddCommentsData, DeleteCommentsData, UpdateCommentsData, SearchTagsData, ShowVoteData, GlobalAutocompleteData, CityAutocompleteData, CityAutocompleteByCountryData, SuggestionInputData, GetProjectsNoAdminData, GetProjectsAdminData, GetPoisNoAdminData, GetPoisAdminData, GetOrganizationsNoAdminData, GetOrganizationsAdminData, GetUserEligiblePlacesData, GetMembersNoAdminData, GetMembersAdminData, GetFriendsAdminData, GetSubscriptionsData, GetSubscriptionsAdminData, GetSubscribersData, GetSubscribersAdminData, GetContributorsNoAdminData, GetContributorsAdminData, GetBadgesData, GetBadgesFiltersData, ConnectData, DisconnectData, GetElementsKeyData, GetFavorisData, DeleteFavorisData, AddFavorisData, AddOrganizationData, AddProjectData, AddPoiData, AddEventData, DeleteElementData, AddImageElementData, LinkValidateData, SearchMemberAutocompleteData, GetNotificationsData, GetNotificationsCountData, NotificationUpdateData, MarkNotificationAsReadData, ActivitypubSearchData, ActivitypubLinkData, ActivitypubGetCommunityData, GetBadgeData, AddBadgesData, AssignBadgesData, GetEventsData, SearchEventsCostumData, ShareEventsData, InviteEventData, FollowData, GetCostumJsonData, GlobalAutocompleteCostumData, NavigatorGettlData, CostumEventRequestActorsData, CostumEventRequestSubeventsData, CostumEventRequestElementEventData, CostumEventRequestCategoriesData, CostumEventRequestDatesData, CostumEventRequestEventData, CostumEventRequestLinkTlToEventData, CostumEventRequestLoadContextTagData, GetGalleryData, GetAttendeesNoAdminData, GetAttendeesAdminData, CoformAnswersSearchData, CoformAnswersByIdData, GetCoformByIdData, CoformUploadAnswerFileData, CoformGetAnswerFilesData, GetCoformCatalogsData, SaveCoformAnswerData, GetCoformAnswerHistoryData, GetCoformMultievalDataData, GetCoformCommontableContributorsData, AddVoteData, AddReportAbuseData, UpdatePathValueData, DeleteDocumentByContextData, DeleteDocumentByIdData, DemoteAdminData, CostumFilterCoformData, CostumFilterCoformByPathData, GetCountriesData, SearchZonesData, CoformAnswersByFormsData, GenerateAnswerFromFormData, FundingEnvelopeData, CoremuOperationData, CostumProjectActionRequestNewData, CostumProjectActionRequestSetStatusData, CostumProjectActionRequestSetDateData, CostumProjectActionRequestSetContributorsData, CostumProjectActionRequestCancelData, CostumProjectActionRequestArchiveData, LinkDiscourseAccountData, UnlinkDiscourseAccountData, DiscourseProfileData, DiscourseCheckEmailData, DiscourseDismissLinkData, LinkMediawikiAccountData, UnlinkMediawikiAccountData, GetMediawikiContributionsData, AddClassifiedData, PersonActivateData } from "./EndpointApi.types.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Classe EndpointApi générée automatiquement depuis endpoints-copie.json
|
|
@@ -1366,6 +1366,21 @@ export class EndpointApi {
|
|
|
1366
1366
|
return this.call("GET_EVENTS", data);
|
|
1367
1367
|
}
|
|
1368
1368
|
|
|
1369
|
+
/**
|
|
1370
|
+
* Recherche d'events scopée costum (agenda) : Agenda costum-aware : events filtrés par sourceKey/costum + plage de dates. Même endpoint /co2/search/agenda que GET_EVENTS, mais surface costum (PAS le filtre attendees/organizer forcé de GET_EVENTS). Réponse = cible-co2-search-agenda.
|
|
1371
|
+
* Constant : SEARCH_EVENTS_COSTUM
|
|
1372
|
+
* @param data - Données envoyées à l'API
|
|
1373
|
+
* @returns Les données de réponse.
|
|
1374
|
+
* @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
|
|
1375
|
+
* @throws {Error} - En cas d'erreur inattendue.
|
|
1376
|
+
*/
|
|
1377
|
+
async searchEventsCostum(data: SearchEventsCostumData): Promise<any> {
|
|
1378
|
+
if (!data || typeof data !== "object") {
|
|
1379
|
+
throw new TypeError("Le paramètre data doit être un objet.");
|
|
1380
|
+
}
|
|
1381
|
+
return this.call("SEARCH_EVENTS_COSTUM", data);
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1369
1384
|
/**
|
|
1370
1385
|
* Partager un événement : Partage un événement avec d’autres utilisateurs ou entités.
|
|
1371
1386
|
* Constant : SHARE_EVENTS
|