@communecter/cocolight-api-client 1.0.194 → 1.0.196
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 +2 -2
- package/dist/cocolight-api-client.cjs +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/types/api/Action.d.ts +11 -2
- package/types/api/Answer.d.ts +226 -8
- package/types/api/EndpointApi.d.ts +60 -1
- package/types/api/EndpointApi.types.d.ts +169 -0
- package/types/api/Event.d.ts +1 -1
- package/types/api/Organization.d.ts +2 -2
- package/types/api/Poi.d.ts +1 -1
- package/types/api/Project.d.ts +2 -2
- package/types/api/User.d.ts +39 -3
- package/types/costum/liveDigest.d.ts +29 -0
- package/types/costum/runtime.d.ts +63 -7
- package/types/costum/widenSchema.d.ts +22 -0
- package/types/endpoints.module.d.ts +7756 -4216
- package/types/index.d.ts +2 -2
package/package.json
CHANGED
package/types/api/Action.d.ts
CHANGED
|
@@ -12,6 +12,14 @@ import type { ActionItemNormalized } from "./serverDataType/Action.js";
|
|
|
12
12
|
* - `_add()` : COSTUM_PROJECT_ACTION_REQUEST_NEW (parentId/parentType injectés depuis le parent)
|
|
13
13
|
* - `_update()` : UPDATE_PATH_VALUE field par field via CUSTOM_FIELD_HANDLERS
|
|
14
14
|
* (pas d'endpoint dédié par bloc côté backend — on dispatche chaque champ modifié)
|
|
15
|
+
*
|
|
16
|
+
* Droits (gardes client) :
|
|
17
|
+
* - `_update()` : **auteur** (`serverData.creator`), **admin du projet parent** (via
|
|
18
|
+
* hiérarchie), ou **contributeur assigné** (`links.contributors[userId]`) ;
|
|
19
|
+
* - `delete()` : auteur ou admin seulement — supprimer est plus fort que corriger.
|
|
20
|
+
*
|
|
21
|
+
* Ces gardes restent indicatifs : l'autorité est le backend, qui pour l'édition accepte
|
|
22
|
+
* tout membre du projet parent (`Authorisation::canEditItem` → `canParticipate`).
|
|
15
23
|
*/
|
|
16
24
|
export declare class Action extends BaseEntity<ActionItemNormalized> {
|
|
17
25
|
static entityType: string;
|
|
@@ -263,8 +271,9 @@ export declare class Action extends BaseEntity<ActionItemNormalized> {
|
|
|
263
271
|
* - Project : regarde `user.serverData.links.projects[projectId]` (sens user→project)
|
|
264
272
|
* - Action : regarde `action.serverData.links.contributors[userId]` (sens inverse)
|
|
265
273
|
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
274
|
+
* Être contributeur assigné suffit à MODIFIER l'action (`_update` accepte auteur,
|
|
275
|
+
* admin du projet parent, ou contributeur), mais **pas à la supprimer** : `delete()`
|
|
276
|
+
* exige auteur ou admin.
|
|
268
277
|
*
|
|
269
278
|
* @param options.silent si `false`, throw en cas de précondition manquante. Par défaut `true`.
|
|
270
279
|
*/
|
package/types/api/Answer.d.ts
CHANGED
|
@@ -43,6 +43,70 @@ export interface GenerateProjectResult {
|
|
|
43
43
|
export interface GenerateMilestoneFromDepenseResult {
|
|
44
44
|
milestoneId: string;
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Statut de paiement d'une ligne de financement, dans le vocabulaire du serveur.
|
|
48
|
+
*
|
|
49
|
+
* ⚠️ `payed` (sic) est la valeur réellement écrite par `Aap::recomputeFinancerPayment`
|
|
50
|
+
* (Aap.php:7179) — ce n'est pas `paid`. Traduire à l'affichage si besoin, mais ne
|
|
51
|
+
* jamais « corriger » la valeur stockée.
|
|
52
|
+
*/
|
|
53
|
+
export type FinancerPaymentStatus = "unpaid" | "partial" | "payed";
|
|
54
|
+
/** Un versement journalisé dans `financer[i].payment.logs[]`. */
|
|
55
|
+
export interface FinancerPaymentLog {
|
|
56
|
+
invoiceId?: string;
|
|
57
|
+
financerId?: string;
|
|
58
|
+
financerName?: string;
|
|
59
|
+
finkey?: string;
|
|
60
|
+
amount?: number;
|
|
61
|
+
/** `"manual"` | `"stripe"` | `"helloasso"`. */
|
|
62
|
+
type?: string;
|
|
63
|
+
date?: unknown;
|
|
64
|
+
/** `"pending"` tant que le porteur n'a pas confirmé la réception des fonds. */
|
|
65
|
+
confirmation?: "pending" | "validated";
|
|
66
|
+
paidBy?: string;
|
|
67
|
+
validatedAt?: unknown;
|
|
68
|
+
validatedBy?: string;
|
|
69
|
+
/** Référence du prestataire de paiement, pour un encaissement en ligne. */
|
|
70
|
+
transactionId?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Bloc `payment` d'une ligne de financement, recalculé par le serveur à chaque
|
|
74
|
+
* versement et à chaque validation.
|
|
75
|
+
*
|
|
76
|
+
* ⚠️ Seuls les logs `validated` alimentent `paidAmount` : un versement encaissé
|
|
77
|
+
* mais non confirmé figure en `pendingAmount`, et `status` reste `"unpaid"`.
|
|
78
|
+
*/
|
|
79
|
+
export interface FinancerPaymentBlock {
|
|
80
|
+
logs?: FinancerPaymentLog[];
|
|
81
|
+
paidAmount?: number;
|
|
82
|
+
pendingAmount?: number;
|
|
83
|
+
status?: FinancerPaymentStatus;
|
|
84
|
+
}
|
|
85
|
+
/** Résultat de `Answer.addFinancer()`. `finkey` est la clé stable de la ligne créée. */
|
|
86
|
+
export interface AddFinancerResult {
|
|
87
|
+
depenseKey: string;
|
|
88
|
+
finkey: string;
|
|
89
|
+
finIndex?: number;
|
|
90
|
+
}
|
|
91
|
+
/** Résultat de `Answer.payFinancer()`. */
|
|
92
|
+
export interface PayFinancerResult {
|
|
93
|
+
/** Identifiant du versement — à conserver pour le valider ensuite. */
|
|
94
|
+
invoiceId: string;
|
|
95
|
+
/** `"validated"` seulement si celui qui enregistre administre le projet receveur. */
|
|
96
|
+
confirmation: "pending" | "validated";
|
|
97
|
+
/** Bloc `payment` tel que le serveur l'a recalculé après le versement. */
|
|
98
|
+
payment?: FinancerPaymentBlock;
|
|
99
|
+
}
|
|
100
|
+
/** Résultat de `Answer.validateFinancerPayment()`. */
|
|
101
|
+
export interface ValidateFinancerPaymentResult {
|
|
102
|
+
invoiceId: string;
|
|
103
|
+
confirmation: "validated";
|
|
104
|
+
}
|
|
105
|
+
/** Résultat de `Answer.deleteFinancer()`. `remaining` = financeurs restants sur la dépense. */
|
|
106
|
+
export interface DeleteFinancerResult {
|
|
107
|
+
depenseKey: string;
|
|
108
|
+
remaining: number;
|
|
109
|
+
}
|
|
46
110
|
/** Un axe du radar multi-eval (= un input radioNew d'une step donnée). */
|
|
47
111
|
export interface MultiEvalAxis {
|
|
48
112
|
key: string;
|
|
@@ -272,27 +336,42 @@ export declare class Answer extends BaseEntity<AnswerItemNormalized> {
|
|
|
272
336
|
* - `serverData` et `draftData` sont vidés (sans casser la réactivité)
|
|
273
337
|
* - `_isDeleted = true` → toute mutation ultérieure (`save`, `get`, etc.) throw
|
|
274
338
|
*
|
|
275
|
-
* **Guard** : autorisation côté client si
|
|
339
|
+
* **Guard** (déléguée à `_deleteViaElement`) : autorisation côté client si
|
|
340
|
+
* l'utilisateur courant est :
|
|
341
|
+
* - **super-admin**, ou **admin de costum** dont le droit a été pré-résolu par
|
|
342
|
+
* l'appelant via `setCostumAdminAuthorized()` — parité du backend
|
|
343
|
+
* `canDeleteElement` (`isUserSuperAdmin` puis `isCostumAdmin`) ; OU
|
|
276
344
|
* - l'**auteur** de l'Answer (`serverData.user === userId`), OU
|
|
277
345
|
* - **admin** d'un parent du Form (org/project) via la hiérarchie
|
|
278
|
-
* (`form.serverData.parent[orgId]` × `userContext.links.memberOf[orgId].isAdmin`)
|
|
346
|
+
* (`form.serverData.parent[orgId]` × `userContext.links.memberOf[orgId].isAdmin`),
|
|
347
|
+
* résolue par l'override `Answer._isAdminViaHierarchy`.
|
|
279
348
|
*
|
|
280
|
-
*
|
|
281
|
-
* l'override `Answer._isAdminViaHierarchy` (remonte via parent instance Form).
|
|
282
|
-
*
|
|
283
|
-
* **Pré-requis** :
|
|
349
|
+
* **Pré-requis** pour la branche hiérarchie :
|
|
284
350
|
* - `this.parent` doit être un Form (cas `form.answer({id})`)
|
|
285
351
|
* - `userContext` (User connecté) doit avoir `serverData.links` chargés (cas `api.me()`)
|
|
286
|
-
* Sans ces pré-requis,
|
|
352
|
+
* Sans ces pré-requis, seuls `isAuthor` et le droit élevé peuvent autoriser.
|
|
353
|
+
*
|
|
354
|
+
* ⚠️ `isAuthor()` lit `serverData.user`, que `findanswered` REMPLACE par
|
|
355
|
+
* l'entité d'affichage (l'organisation, sur une réponse portée par une orga) ;
|
|
356
|
+
* le déposant reste dans `serverData.userId`. Sur ces réponses-là, la branche
|
|
357
|
+
* auteur ne reconnaît donc pas le véritable auteur.
|
|
358
|
+
*
|
|
359
|
+
* Le serveur reste la source de vérité dans tous les cas.
|
|
287
360
|
*
|
|
288
361
|
* @param reason - Raison libre transmise au backend (audit). Défaut : `"delete coform answer"`.
|
|
289
362
|
* @throws {ApiError} 400 si l'Answer n'a pas d'id (jamais sauvegardée).
|
|
290
|
-
* @throws {ApiError} 403 si ni auteur ni admin du parent.
|
|
363
|
+
* @throws {ApiError} 403 si ni droit élevé, ni auteur, ni admin du parent.
|
|
291
364
|
*
|
|
292
365
|
* @example
|
|
293
366
|
* const answer = await form.answer({ id: "..." });
|
|
294
367
|
* await answer.delete(); // OK si auteur OU admin org/project parent du Form
|
|
295
368
|
* answer._isDeleted; // true
|
|
369
|
+
*
|
|
370
|
+
* @example
|
|
371
|
+
* // Admin de costum : poser le droit AVANT l'appel, sinon la garde client refuse.
|
|
372
|
+
* const answer = await form.answer({ id: "..." });
|
|
373
|
+
* answer.setCostumAdminAuthorized();
|
|
374
|
+
* await answer.delete();
|
|
296
375
|
*/
|
|
297
376
|
delete(reason?: string): Promise<void>;
|
|
298
377
|
/**
|
|
@@ -440,6 +519,145 @@ export declare class Answer extends BaseEntity<AnswerItemNormalized> {
|
|
|
440
519
|
* const { milestoneId } = await answer.generateMilestoneFromDepense("0");
|
|
441
520
|
*/
|
|
442
521
|
generateMilestoneFromDepense(depenseKey: string): Promise<GenerateMilestoneFromDepenseResult>;
|
|
522
|
+
/**
|
|
523
|
+
* Traduit une réponse d'échec du dispatcher `coremuoperation` en `ApiError`.
|
|
524
|
+
*
|
|
525
|
+
* Le backend répond toujours HTTP 200 avec `{success: 0, msg}` (ou
|
|
526
|
+
* `{success: 0, content}` pour la validation du dispatcher) : sans cette
|
|
527
|
+
* traduction, un refus de droits passerait pour un succès. Le code HTTP est
|
|
528
|
+
* déduit du message, seule information que le serveur donne sur la nature du
|
|
529
|
+
* refus (`Aap.php:7285-7618`).
|
|
530
|
+
*/
|
|
531
|
+
private static financerOperationError;
|
|
532
|
+
/**
|
|
533
|
+
* Ajoute une promesse de financement sur une dépense de cette Answer.
|
|
534
|
+
*
|
|
535
|
+
* L'entrée écrite dans `answers.aapStep1.depense.<depenseKey>.financer[]` est
|
|
536
|
+
* construite **par le serveur**, au format canonique : `finkey` (clé stable de
|
|
537
|
+
* la ligne), `line`, `status: "pending"` et `payment: {logs: []}`. Ne jamais
|
|
538
|
+
* fabriquer cette entrée côté client — `finkey` vient de `random_bytes` serveur,
|
|
539
|
+
* et les agrégats de `payment` sont recalculés à chaque versement.
|
|
540
|
+
*
|
|
541
|
+
* Préférer `milestoneId` à `depenseKey` : le serveur résout alors la clé
|
|
542
|
+
* lui-même, ce qui évite de confondre la **clé** du sous-document dépense
|
|
543
|
+
* (ex. `"3"`) avec sa **position** dans la liste densifiée — `depense` arrive
|
|
544
|
+
* parfois en objet à clés creuses.
|
|
545
|
+
*
|
|
546
|
+
* Constant : `COREMU_ADD_FINANCER` (POST `/co2/aap/coremuoperation/`, auth bearer —
|
|
547
|
+
* le backend lit `Yii::app()->session['userId']`, alimentée par le JWT).
|
|
548
|
+
*
|
|
549
|
+
* @param opts.financerId - Qui s'engage : soi-même, une organisation qu'on
|
|
550
|
+
* administre, ou un tiers si l'on est porteur du projet.
|
|
551
|
+
* @param opts.amount - Montant engagé, strictement positif.
|
|
552
|
+
* @param opts.milestoneId - Jalon visé (recommandé).
|
|
553
|
+
* @param opts.depenseKey - Clé de la dépense — requise seulement sans `milestoneId`.
|
|
554
|
+
* @returns `{ depenseKey, finkey, finIndex }` — conserver `finkey` : c'est par
|
|
555
|
+
* elle que se cible le versement.
|
|
556
|
+
* @throws {ApiError} 400 si Answer sans id, si ni `milestoneId` ni `depenseKey`
|
|
557
|
+
* n'est fourni, ou si la dépense est introuvable.
|
|
558
|
+
* @throws {ApiError} 403 si l'on ne peut pas s'engager pour ce financeur.
|
|
559
|
+
* @throws {ApiAuthenticationError} si non connecté.
|
|
560
|
+
*
|
|
561
|
+
* @example
|
|
562
|
+
* const { finkey, depenseKey } = await answer.addFinancer({
|
|
563
|
+
* milestoneId, financerId: me.id, amount: 1000,
|
|
564
|
+
* });
|
|
565
|
+
*/
|
|
566
|
+
addFinancer(opts: {
|
|
567
|
+
financerId: string;
|
|
568
|
+
amount: number;
|
|
569
|
+
milestoneId?: string;
|
|
570
|
+
depenseKey?: string;
|
|
571
|
+
}): Promise<AddFinancerResult>;
|
|
572
|
+
/**
|
|
573
|
+
* Enregistre un versement sur une promesse de financement de cette Answer.
|
|
574
|
+
*
|
|
575
|
+
* ⚠️ Le montant n'est **comptabilisé** (`payment.paidAmount`) qu'une fois le
|
|
576
|
+
* versement validé par le porteur. Le log naît `confirmation: "validated"`
|
|
577
|
+
* seulement si celui qui enregistre administre le projet receveur ; sinon il
|
|
578
|
+
* naît `"pending"`. Un encaissement Stripe/HelloAsso par un tiers est donc
|
|
579
|
+
* réellement encaissé mais compté en `pendingAmount` jusqu'à confirmation —
|
|
580
|
+
* l'UI ne doit pas annoncer « non payé » à qui vient de régler par carte.
|
|
581
|
+
*
|
|
582
|
+
* Toujours passer `finkey` : le ciblage par position casse dès qu'une
|
|
583
|
+
* insertion concurrente décale `financer[]`.
|
|
584
|
+
*
|
|
585
|
+
* Constant : `COREMU_PAY_FINANCER` (POST `/co2/aap/coremuoperation/`, auth bearer).
|
|
586
|
+
*
|
|
587
|
+
* @param opts.amount - Montant versé. Un versement partiel est légitime.
|
|
588
|
+
* @param opts.paymentType - `"manual"` (défaut), `"stripe"` ou `"helloasso"`.
|
|
589
|
+
* @param opts.transactionId - Référence du prestataire de paiement, journalisée
|
|
590
|
+
* avec le versement.
|
|
591
|
+
* @returns `{ invoiceId, confirmation, payment }` — `invoiceId` sert à valider
|
|
592
|
+
* le versement ensuite.
|
|
593
|
+
* @throws {ApiError} 400 si Answer sans id ou arguments invalides ; 403 si l'on
|
|
594
|
+
* ne peut pas verser pour ce financeur ; 404 si la ligne est introuvable.
|
|
595
|
+
* @throws {ApiAuthenticationError} si non connecté.
|
|
596
|
+
*
|
|
597
|
+
* @example
|
|
598
|
+
* const { invoiceId, payment } = await answer.payFinancer({
|
|
599
|
+
* depenseKey, financerId, finkey, amount: 500, paymentType: "stripe",
|
|
600
|
+
* });
|
|
601
|
+
* payment.status; // "unpaid" tant que le porteur n'a pas validé
|
|
602
|
+
*/
|
|
603
|
+
payFinancer(opts: {
|
|
604
|
+
depenseKey: string;
|
|
605
|
+
financerId: string;
|
|
606
|
+
amount: number;
|
|
607
|
+
finkey?: string;
|
|
608
|
+
finIndex?: number;
|
|
609
|
+
paymentType?: string;
|
|
610
|
+
transactionId?: string;
|
|
611
|
+
}): Promise<PayFinancerResult>;
|
|
612
|
+
/**
|
|
613
|
+
* Valide un versement reçu : le porteur confirme avoir touché les fonds.
|
|
614
|
+
*
|
|
615
|
+
* C'est ce passage à `validated` qui fait entrer le montant dans
|
|
616
|
+
* `payment.paidAmount` — avant lui, l'argent figure en `pendingAmount`.
|
|
617
|
+
* Réservé à l'admin du projet, à l'admin de l'organisation parente ou à un
|
|
618
|
+
* super-admin : le financeur ne valide pas son propre versement.
|
|
619
|
+
*
|
|
620
|
+
* Constant : `COREMU_VALIDATE_FINANCER_PAYMENT` (POST `/co2/aap/coremuoperation/`, auth bearer).
|
|
621
|
+
*
|
|
622
|
+
* @param opts.invoiceId - Identifiant du versement, rendu par `payFinancer`.
|
|
623
|
+
* @throws {ApiError} 400 si Answer sans id ou arguments manquants ; 403 si l'on
|
|
624
|
+
* n'administre pas le projet ; 404 si aucun log ne porte cet `invoiceId`.
|
|
625
|
+
* @throws {ApiAuthenticationError} si non connecté.
|
|
626
|
+
*
|
|
627
|
+
* @example
|
|
628
|
+
* await answer.validateFinancerPayment({ depenseKey, invoiceId });
|
|
629
|
+
*/
|
|
630
|
+
validateFinancerPayment(opts: {
|
|
631
|
+
depenseKey: string;
|
|
632
|
+
invoiceId: string;
|
|
633
|
+
}): Promise<ValidateFinancerPaymentResult>;
|
|
634
|
+
/**
|
|
635
|
+
* Retire une promesse de financement de cette Answer.
|
|
636
|
+
*
|
|
637
|
+
* **Refusé (409) dès que la ligne porte un versement**, même non validé :
|
|
638
|
+
* supprimer la promesse effacerait la trace de l'argent.
|
|
639
|
+
*
|
|
640
|
+
* Droits plus étroits que pour l'ajout : seul le financeur, ou l'admin de
|
|
641
|
+
* l'organisation financeuse, peut retirer un engagement — administrer le projet
|
|
642
|
+
* receveur ne suffit pas.
|
|
643
|
+
*
|
|
644
|
+
* Constant : `COREMU_DELETE_FINANCER` (POST `/co2/aap/coremuoperation/`, auth bearer).
|
|
645
|
+
*
|
|
646
|
+
* @returns `{ depenseKey, remaining }` — `remaining` = financeurs restants sur la dépense.
|
|
647
|
+
* @throws {ApiError} 400 si Answer sans id ou arguments manquants ; 403 si l'on
|
|
648
|
+
* ne peut pas agir pour ce financeur ; 404 si la ligne est introuvable ;
|
|
649
|
+
* 409 si un versement y est déjà rattaché.
|
|
650
|
+
* @throws {ApiAuthenticationError} si non connecté.
|
|
651
|
+
*
|
|
652
|
+
* @example
|
|
653
|
+
* const { remaining } = await answer.deleteFinancer({ depenseKey, financerId, finkey });
|
|
654
|
+
*/
|
|
655
|
+
deleteFinancer(opts: {
|
|
656
|
+
depenseKey: string;
|
|
657
|
+
financerId: string;
|
|
658
|
+
finkey?: string;
|
|
659
|
+
finIndex?: number;
|
|
660
|
+
}): Promise<DeleteFinancerResult>;
|
|
443
661
|
/**
|
|
444
662
|
* Récupère les datasets agrégés des évaluations multiples (radar) de cette
|
|
445
663
|
* Answer. Pour une réponse partagée contenant des inputs `radioNew` avec
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type ApiClient from "../ApiClient.js";
|
|
2
|
-
import type { DocumentListData, PersonRegisterData, AuthenticateUrlData, RefreshTokenUrlData, PasswordRecoveryData, PasswordResetData, ServerExchangeTokenData, ChangePasswordData, DeleteAccountData, UpdateSettingsData, UpdateBlockDescriptionData, UpdateBlockInfoData, UpdateBlockSocialData, UpdateBlockLocalityData, UpdateBlockSlugData, CheckData, ProfilImageData, ProfilBannerData, GetElementsAboutData, MulticonnectData, RelaunchInvitationData, ContactSendData, GetNewsData, GetNewsByIdData, AddNewsData, AddImageNewsData, AddFileNewsData, DeleteNewsData, UpdateNewsData, ShareNewsData, GetCommentsData, AddCommentsData, DeleteCommentsData, UpdateCommentsData, SearchTagsData, ShowVoteData, GlobalAutocompleteData, CityAutocompleteData, CityAutocompleteByCountryData, SuggestionInputData, GetProjectsNoAdminData, GetProjectsAdminData, GetPoisNoAdminData, GetPoisAdminData, GlobalAutocompleteAdminCostumData, GetOrganizationsNoAdminData, GetOrganizationsAdminData, GetUserEligiblePlacesData, GetMembersNoAdminData, GetMembersAdminData, GetFriendsAdminData, GetSubscriptionsData, GetSubscriptionsAdminData, GetSubscribersData, GetSubscribersAdminData, GetContributorsNoAdminData, GetContributorsAdminData, GetBadgesData, GetBadgesFiltersData, ConnectData, CreateInvitationLinkData, ConnectByRefData, 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, InviteMembersData, FollowData, GetCostumJsonData, GlobalAutocompleteCostumData, NavigatorGettlData, NavigatorGetRessourceTlData, CostumEventRequestActorsData, CostumEventRequestSubeventsData, CostumEventRequestElementEventData, CostumEventRequestCategoriesData, CostumEventRequestDatesData, CostumEventRequestEventData, CostumEventRequestLinkTlToEventData, CostumEventRequestLoadContextTagData, GetGalleryData, GetAttendeesNoAdminData, GetAttendeesAdminData, CoformAnswersSearchData, CoformAnswersByIdData, GetCoformByIdData, CoformUploadAnswerFileData, DeleteCoformAnswerFileData, CoformGetAnswerFilesData, GetCoformCatalogsData, SaveCoformAnswerData, GetCoformAnswerHistoryData, GetCoformMultievalDataData, GetCoformCommontableContributorsData, AddVoteData, AddReportAbuseData, UpdatePathValueData, DeleteDocumentByContextData, DeleteDocumentByIdData, DemoteAdminData, CostumFilterCoformData, CostumFilterCoformByPathData, GetCountriesData, SearchZonesData, CoformAnswersByFormsData, CostumToolsCatalogData, CostumToolUsersData, CostumCommunInfoData, CostumSaveToolEnrichmentData, CostumCommunListData, GenerateAnswerFromFormData, GenerateProjectFromAnswerData, GenerateMilestoneFromDepenseData, FundingEnvelopeData, CoremuOperationData, CostumProjectActionRequestNewData, CostumProjectActionRequestSetStatusData, CostumProjectActionRequestSetDateData, CostumProjectActionRequestSetContributorsData, CostumProjectActionRequestCancelData, CostumProjectActionRequestArchiveData, LinkDiscourseAccountData, UnlinkDiscourseAccountData, DiscourseProfileData, DiscourseCheckEmailData, DiscourseDismissLinkData, LinkMediawikiAccountData, UnlinkMediawikiAccountData, GetMediawikiContributionsData, AddClassifiedData, PersonActivateData, PersonValidateInvitationData, ValidateInvitationByMailData, ImportPreviewData, ExportElementsData, ImportElementsData, GeocodageData, ValidateGroupData, SetSourceData, TransferSourceCheckData, TransferSourceApplyData, TransferSourceRollbackData, TransferSourceHistoryData, ModerateData, NewsModerateData, CommentModerateData, UploadDocumentData, ZoneGetShapeData, ZoneGetZonirisData, CostumListValuesData, CostumResolvedData, DirectoryProposalData, DirectoryProposalCountData, DirectoryProposalNewCounterData } from "./EndpointApi.types.js";
|
|
2
|
+
import type { DocumentListData, PersonRegisterData, AuthenticateUrlData, RefreshTokenUrlData, PasswordRecoveryData, PasswordResetData, ServerExchangeTokenData, ChangePasswordData, DeleteAccountData, UpdateSettingsData, UpdateBlockDescriptionData, UpdateBlockInfoData, UpdateBlockSocialData, UpdateBlockLocalityData, UpdateBlockSlugData, CheckData, ProfilImageData, ProfilBannerData, GetElementsAboutData, MulticonnectData, RelaunchInvitationData, ContactSendData, GetNewsData, GetNewsByIdData, AddNewsData, AddImageNewsData, AddFileNewsData, DeleteNewsData, UpdateNewsData, ShareNewsData, GetCommentsData, AddCommentsData, DeleteCommentsData, UpdateCommentsData, SearchTagsData, ShowVoteData, GlobalAutocompleteData, CityAutocompleteData, CityAutocompleteByCountryData, SuggestionInputData, GetProjectsNoAdminData, GetProjectsAdminData, GetPoisNoAdminData, GetPoisAdminData, GlobalAutocompleteAdminCostumData, GetOrganizationsNoAdminData, GetOrganizationsAdminData, GetUserEligiblePlacesData, GetMembersNoAdminData, GetMembersAdminData, GetFriendsAdminData, GetSubscriptionsData, GetSubscriptionsAdminData, GetSubscribersData, GetSubscribersAdminData, GetContributorsNoAdminData, GetContributorsAdminData, GetBadgesData, GetBadgesFiltersData, ConnectData, LinkSetRolesData, CreateInvitationLinkData, ConnectByRefData, 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, InviteMembersData, FollowData, GetCostumJsonData, GlobalAutocompleteCostumData, NavigatorGettlData, NavigatorGetRessourceTlData, CostumEventRequestActorsData, CostumEventRequestSubeventsData, CostumEventRequestElementEventData, CostumEventRequestCategoriesData, CostumEventRequestDatesData, CostumEventRequestEventData, CostumEventRequestLinkTlToEventData, CostumEventRequestLoadContextTagData, AgendaGetPdfData, GetGalleryData, GetAttendeesNoAdminData, GetAttendeesAdminData, CoformAnswersSearchData, CoformAnswersByIdData, GetCoformByIdData, CoformUploadAnswerFileData, DeleteCoformAnswerFileData, CoformGetAnswerFilesData, GetCoformCatalogsData, SaveCoformAnswerData, GetCoformAnswerHistoryData, GetCoformMultievalDataData, GetCoformCommontableContributorsData, AddVoteData, AddReportAbuseData, UpdatePathValueData, DeleteDocumentByContextData, DeleteDocumentByIdData, DemoteAdminData, CostumFilterCoformData, CostumFilterCoformByPathData, GetCountriesData, SearchZonesData, CoformAnswersByFormsData, CostumToolsCatalogData, CostumToolUsersData, CostumCommunInfoData, CostumSaveToolEnrichmentData, CostumCommunListData, GenerateAnswerFromFormData, GenerateProjectFromAnswerData, GenerateMilestoneFromDepenseData, FundingEnvelopeData, CoremuOperationData, CoremuAddFinancerData, CoremuPayFinancerData, CoremuValidateFinancerPaymentData, CoremuDeleteFinancerData, CostumProjectActionRequestNewData, CostumProjectActionRequestSetStatusData, CostumProjectActionRequestSetDateData, CostumProjectActionRequestSetContributorsData, CostumProjectActionRequestCancelData, CostumProjectActionRequestArchiveData, LinkDiscourseAccountData, UnlinkDiscourseAccountData, DiscourseProfileData, DiscourseCheckEmailData, DiscourseDismissLinkData, LinkMediawikiAccountData, UnlinkMediawikiAccountData, GetMediawikiContributionsData, AddClassifiedData, PersonActivateData, PersonValidateInvitationData, ValidateInvitationByMailData, ImportPreviewData, ExportElementsData, ImportElementsData, GeocodageData, ValidateGroupData, SetSourceData, TransferSourceCheckData, TransferSourceApplyData, TransferSourceRollbackData, TransferSourceHistoryData, ModerateData, NewsModerateData, CommentModerateData, UploadDocumentData, ZoneGetShapeData, ZoneGetZonirisData, CostumListValuesData, CostumResolvedData, DirectoryProposalData, DirectoryProposalCountData, DirectoryProposalNewCounterData } from "./EndpointApi.types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Classe EndpointApi générée automatiquement depuis endpoints-copie.json
|
|
5
5
|
*/
|
|
@@ -630,6 +630,16 @@ export declare class EndpointApi {
|
|
|
630
630
|
* @throws {Error} - En cas d'erreur inattendue.
|
|
631
631
|
*/
|
|
632
632
|
connect(data: ConnectData): Promise<any>;
|
|
633
|
+
/**
|
|
634
|
+
* Définir les rôles d'un lien : Remplace INTÉGRALEMENT les rôles d'un lien existant (ou en pose un premier), des deux côtés : `links.<connectType>.<childId>.roles` sur le contexte et `links.<memberOf|projects|events>.<contextId>.roles` sur l'enfant. Malgré le nom du chemin legacy (Link::removeRole, citizenToolKit/models/Link.php:866-917), ce n'est PAS un retrait sélectif : `roles` non vide → `$set` du tableau envoyé ; `roles` vide ou absent → `$unset` (tous les rôles effacés). L'appelant envoie donc la liste COMPLÈTE voulue. Réservé aux admins du contexte au sens d'Authorisation::isElementAdmin — lien admin, admin du parent (ou de l'organisateur d'un événement), super-admin, admin du costum transmis (sinon {result:false, msg:"You are not admin of the Organization : <id>"}, HTTP 200). Le lien doit EXISTER : le backend Node refuse sinon ({result:false, msg:"The actor (<id> / <type>) is not linked to this element"}), le legacy l'écrirait (BUG-L-267).
|
|
635
|
+
* Constant : LINK_SET_ROLES
|
|
636
|
+
* @param data - Données envoyées à l'API
|
|
637
|
+
* @returns Les données de réponse.
|
|
638
|
+
* @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
|
|
639
|
+
* @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
|
|
640
|
+
* @throws {Error} - En cas d'erreur inattendue.
|
|
641
|
+
*/
|
|
642
|
+
linkSetRoles(data: LinkSetRolesData): Promise<any>;
|
|
633
643
|
/**
|
|
634
644
|
* Générer un lien d'invitation partageable : Génère une URL d'invitation partageable /co2/link/connect/ref/<ref> vers un élément (organizations/projects/events). Tout citoyen connecté qui suit le lien rejoint l'élément IMMÉDIATEMENT (member, ou admin si isAdmin). L'appelant doit être ADMIN de la cible (ou super-admin). ⚠ Durcissements vs legacy : whitelist stricte des champs (pas de mass-assignment du body), ref cryptographique (le legacy dérivait uniqid()). Deux appels (isAdmin=true / false) alimentent costum.invitationLink / costum.invitationLinkAsMember côté UI.
|
|
635
645
|
* Constant : CREATE_INVITATION_LINK
|
|
@@ -1048,6 +1058,15 @@ export declare class EndpointApi {
|
|
|
1048
1058
|
* @throws {Error} - En cas d'erreur inattendue.
|
|
1049
1059
|
*/
|
|
1050
1060
|
costumEventRequestLoadContextTag(data: CostumEventRequestLoadContextTagData): Promise<any>;
|
|
1061
|
+
/**
|
|
1062
|
+
* PDF imprimable de l'agenda d'un costum : Édition imprimable (PDF binaire, application/pdf) de l'agenda d'un costum : sous-événements de l'entité PORTEUSE du costum (id/type de l'entité, pas d'un événement), triés par date d'occurrence. Port de costum/controllers/actions/coevent/pdf/GetPdfAction.php. Tout paramètre GET non réservé (id, type, costum_slug, startDate, vue, rest, tab) filtre les sous-événements sur le champ top-level du même nom, en `$in` insensible à la casse sur une liste séparée par des virgules — d'où `additionalProperties` ouvert : les facettes propres à un site (ex. territoires/publics/thèmes de parent62) n'ont pas à être nommées ici.
|
|
1063
|
+
* Constant : AGENDA_GET_PDF
|
|
1064
|
+
* @param data - Données envoyées à l'API
|
|
1065
|
+
* @returns Les données de réponse.
|
|
1066
|
+
* @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
|
|
1067
|
+
* @throws {Error} - En cas d'erreur inattendue.
|
|
1068
|
+
*/
|
|
1069
|
+
agendaGetPdf(data: AgendaGetPdfData): Promise<any>;
|
|
1051
1070
|
/**
|
|
1052
1071
|
* Récupération de la galerie : Renvoie soit la liste d’albums associés à une entité, soit les images d’un album spécifique.
|
|
1053
1072
|
* Constant : GET_GALLERY
|
|
@@ -1380,6 +1399,46 @@ export declare class EndpointApi {
|
|
|
1380
1399
|
* @throws {Error} - En cas d'erreur inattendue.
|
|
1381
1400
|
*/
|
|
1382
1401
|
coremuOperation(data: CoremuOperationData): Promise<any>;
|
|
1402
|
+
/**
|
|
1403
|
+
* Ajouter une promesse de financement sur une dépense : Crée un engagement de financement dans answers.aapStep1.depense.<depenseKey>.financer[] au format canonique : {line:'', amount, user, date, name, id, type, status:'pending', finkey, payment:{logs:[]}}. La `finkey` (clé stable de la ligne) et le nom/type du financeur sont résolus SERVEUR — ne jamais les envoyer. Aap::addFinancerEngagement (Aap.php:7285-7362). Droits : financeur lui-même, admin de l'organisation financeuse, ou porteur du projet (Aap.php:7313). Dispatch : CoremuOperationAction.php:175-186 (switch sur $_POST['action']), route déclarée dans modules/co2/controllers/AapController.php:74. auth bearer : le backend lit Yii::app()->session['userId'], alimentée par le JWT via CommunecterController::beforeAction → Authorisation::isJwtconnected → Person::saveUserSessionData.
|
|
1404
|
+
* Constant : COREMU_ADD_FINANCER
|
|
1405
|
+
* @param data - Données envoyées à l'API
|
|
1406
|
+
* @returns Les données de réponse.
|
|
1407
|
+
* @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
|
|
1408
|
+
* @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
|
|
1409
|
+
* @throws {Error} - En cas d'erreur inattendue.
|
|
1410
|
+
*/
|
|
1411
|
+
coremuAddFinancer(data: CoremuAddFinancerData): Promise<any>;
|
|
1412
|
+
/**
|
|
1413
|
+
* Enregistrer un versement sur une promesse de financement : Pousse un log dans financer[i].payment.logs[] et recalcule paidAmount/pendingAmount/status. `invoiceId` est généré serveur ('FIN-'+YmdHis+'-'+5 premiers car. du financerId). Le log naît confirmation:'validated' si le payeur administre le projet receveur, sinon 'pending' — un encaissement Stripe/HelloAsso par un tiers reste donc en attente de confirmation du porteur, et n'entre PAS dans paidAmount tant qu'il n'est pas validé. Aap::payFinancerEngagement (Aap.php:7468-7562). Dispatch : CoremuOperationAction.php:175-186 (switch sur $_POST['action']), route déclarée dans modules/co2/controllers/AapController.php:74. auth bearer : le backend lit Yii::app()->session['userId'], alimentée par le JWT via CommunecterController::beforeAction → Authorisation::isJwtconnected → Person::saveUserSessionData.
|
|
1414
|
+
* Constant : COREMU_PAY_FINANCER
|
|
1415
|
+
* @param data - Données envoyées à l'API
|
|
1416
|
+
* @returns Les données de réponse.
|
|
1417
|
+
* @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
|
|
1418
|
+
* @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
|
|
1419
|
+
* @throws {Error} - En cas d'erreur inattendue.
|
|
1420
|
+
*/
|
|
1421
|
+
coremuPayFinancer(data: CoremuPayFinancerData): Promise<any>;
|
|
1422
|
+
/**
|
|
1423
|
+
* Valider un versement reçu sur une promesse de financement : Le porteur confirme avoir reçu les fonds : passe le log d'`invoiceId` à confirmation:'validated', pose validatedAt/validatedBy, puis recalcule le bloc payment — c'est ce passage qui fait entrer le montant dans paidAmount. Réservé à l'admin du projet, l'admin de l'organisation parente ou un super-admin (Aap.php:7577). Aap::validateFinancerPayment (Aap.php:7559-7618). Dispatch : CoremuOperationAction.php:175-186 (switch sur $_POST['action']), route déclarée dans modules/co2/controllers/AapController.php:74. auth bearer : le backend lit Yii::app()->session['userId'], alimentée par le JWT via CommunecterController::beforeAction → Authorisation::isJwtconnected → Person::saveUserSessionData.
|
|
1424
|
+
* Constant : COREMU_VALIDATE_FINANCER_PAYMENT
|
|
1425
|
+
* @param data - Données envoyées à l'API
|
|
1426
|
+
* @returns Les données de réponse.
|
|
1427
|
+
* @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
|
|
1428
|
+
* @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
|
|
1429
|
+
* @throws {Error} - En cas d'erreur inattendue.
|
|
1430
|
+
*/
|
|
1431
|
+
coremuValidateFinancerPayment(data: CoremuValidateFinancerPaymentData): Promise<any>;
|
|
1432
|
+
/**
|
|
1433
|
+
* Retirer une promesse de financement : Retire un engagement de financer[]. REFUSÉ si la ligne porte le moindre versement, même non validé : effacer la promesse effacerait la trace de l'argent (Aap.php:7408-7414). Droits plus étroits que pour l'ajout — seul le financeur ou l'admin de l'organisation financeuse peut retirer ; administrer le projet receveur ne suffit PAS (Aap.php:7404). Aap::deleteFinancerEngagement (Aap.php:7377-7430). Dispatch : CoremuOperationAction.php:175-186 (switch sur $_POST['action']), route déclarée dans modules/co2/controllers/AapController.php:74. auth bearer : le backend lit Yii::app()->session['userId'], alimentée par le JWT via CommunecterController::beforeAction → Authorisation::isJwtconnected → Person::saveUserSessionData.
|
|
1434
|
+
* Constant : COREMU_DELETE_FINANCER
|
|
1435
|
+
* @param data - Données envoyées à l'API
|
|
1436
|
+
* @returns Les données de réponse.
|
|
1437
|
+
* @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
|
|
1438
|
+
* @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
|
|
1439
|
+
* @throws {Error} - En cas d'erreur inattendue.
|
|
1440
|
+
*/
|
|
1441
|
+
coremuDeleteFinancer(data: CoremuDeleteFinancerData): Promise<any>;
|
|
1383
1442
|
/**
|
|
1384
1443
|
* Ajouter nouvel action : Crée une nouvelle action rattachée à un projet.
|
|
1385
1444
|
* Constant : COSTUM_PROJECT_ACTION_REQUEST_NEW
|
|
@@ -2928,6 +2928,49 @@ export interface ConnectData {
|
|
|
2928
2928
|
* Type de connexion
|
|
2929
2929
|
*/
|
|
2930
2930
|
connectType: "admin" | "member" | "contributor" | "attendee" | "friend" | "connect";
|
|
2931
|
+
/**
|
|
2932
|
+
* Rôles à poser sur le lien (`links.<connectType>.<childId>.roles`, des deux côtés). Lu par ConnectAction ($_POST["roles"]) : fusionné AVANT les rôles déjà portés par le lien côté enfant (array_merge), puis écrit par Link::connect. Effectif à la CRÉATION d'un lien, et lors d'une promotion admin (connectType=admin sur un membre non admin : rôles fusionnés puis écrits). Sur un lien déjà établi du même statut, Link::connectParentToChild répond « already member » avant toute écriture — pour modifier les rôles d'un lien établi, utiliser LINK_SET_ROLES.
|
|
2933
|
+
*/
|
|
2934
|
+
roles?: string[];
|
|
2935
|
+
/**
|
|
2936
|
+
* Contexte costum de l'action : slug du SITE appelant (l'entité porteuse du costum), jamais le slug du moteur (« costumize »). Injecté automatiquement par le client (ApiClient.setSiteCostum / setCostumScope). Le legacy le lit dans $_POST — CommunecterController::costumCacheParams réchauffe alors le cache costum AVANT l'action, ce qui brande l'e-mail émis (domaine des liens, titre, logo, expéditeur) et stampe source.key sur le job cron.
|
|
2937
|
+
*/
|
|
2938
|
+
costumSlug?: string;
|
|
2939
|
+
/**
|
|
2940
|
+
* Contexte costum : _id de l'entité porteuse du costum (contextId). Facultatif, complète costumSlug.
|
|
2941
|
+
*/
|
|
2942
|
+
costumId?: string;
|
|
2943
|
+
/**
|
|
2944
|
+
* Contexte costum : collection de l'entité porteuse (organizations | projects | events | citoyens). Facultatif, complète costumSlug.
|
|
2945
|
+
*/
|
|
2946
|
+
costumType?: string;
|
|
2947
|
+
[k: string]: unknown;
|
|
2948
|
+
}
|
|
2949
|
+
export interface LinkSetRolesData {
|
|
2950
|
+
/**
|
|
2951
|
+
* ID de l'entité porteuse du lien (organisation, projet, événement)
|
|
2952
|
+
*/
|
|
2953
|
+
contextId: string;
|
|
2954
|
+
/**
|
|
2955
|
+
* Type de l'entité porteuse
|
|
2956
|
+
*/
|
|
2957
|
+
contextType: "organizations" | "projects" | "events";
|
|
2958
|
+
/**
|
|
2959
|
+
* ID du membre / contributeur / participant
|
|
2960
|
+
*/
|
|
2961
|
+
childId: string;
|
|
2962
|
+
/**
|
|
2963
|
+
* Type du membre
|
|
2964
|
+
*/
|
|
2965
|
+
childType: "citoyens" | "organizations";
|
|
2966
|
+
/**
|
|
2967
|
+
* Clé du lien côté contexte
|
|
2968
|
+
*/
|
|
2969
|
+
connectType: "members" | "contributors" | "attendees";
|
|
2970
|
+
/**
|
|
2971
|
+
* Liste COMPLÈTE des rôles voulus. Vide → efface tous les rôles du lien ($unset). Valeurs écrites telles quelles (pas de trim côté legacy pour un tableau).
|
|
2972
|
+
*/
|
|
2973
|
+
roles?: string[];
|
|
2931
2974
|
/**
|
|
2932
2975
|
* Contexte costum de l'action : slug du SITE appelant (l'entité porteuse du costum), jamais le slug du moteur (« costumize »). Injecté automatiquement par le client (ApiClient.setSiteCostum / setCostumScope). Le legacy le lit dans $_POST — CommunecterController::costumCacheParams réchauffe alors le cache costum AVANT l'action, ce qui brande l'e-mail émis (domaine des liens, titre, logo, expéditeur) et stampe source.key sur le job cron.
|
|
2933
2976
|
*/
|
|
@@ -5621,6 +5664,29 @@ export interface CostumEventRequestLoadContextTagData {
|
|
|
5621
5664
|
};
|
|
5622
5665
|
[k: string]: unknown;
|
|
5623
5666
|
}
|
|
5667
|
+
export interface AgendaGetPdfData {
|
|
5668
|
+
/**
|
|
5669
|
+
* ID de l'entité porteuse du costum
|
|
5670
|
+
*/
|
|
5671
|
+
id: string;
|
|
5672
|
+
/**
|
|
5673
|
+
* Collection de l'entité porteuse
|
|
5674
|
+
*/
|
|
5675
|
+
type: "organizations" | "projects" | "events" | "citoyens";
|
|
5676
|
+
/**
|
|
5677
|
+
* Slug du costum (réchauffe le cache costum legacy avant le rendu)
|
|
5678
|
+
*/
|
|
5679
|
+
costum_slug: string;
|
|
5680
|
+
/**
|
|
5681
|
+
* Borne basse temporelle (interprétée par strtotime côté legacy, ex. 2026-10-01) : startDate >= cette date.
|
|
5682
|
+
*/
|
|
5683
|
+
startDate?: string;
|
|
5684
|
+
/**
|
|
5685
|
+
* Tags séparés par des virgules. ⚠️ Passe par le filtre GET générique : sémantique OU (`$in`, insensible à la casse), pas ET — le filtre ET (`$all`) du legacy n'est lu que dans un corps JSON, absent en GET.
|
|
5686
|
+
*/
|
|
5687
|
+
tags?: string;
|
|
5688
|
+
[k: string]: unknown;
|
|
5689
|
+
}
|
|
5624
5690
|
export interface GetGalleryData {
|
|
5625
5691
|
/**
|
|
5626
5692
|
* Clé de contenu pour correspondre à l'album ou aux images
|
|
@@ -6765,6 +6831,109 @@ export interface CoremuOperationData {
|
|
|
6765
6831
|
project: string;
|
|
6766
6832
|
[k: string]: unknown;
|
|
6767
6833
|
}
|
|
6834
|
+
export interface CoremuAddFinancerData {
|
|
6835
|
+
/**
|
|
6836
|
+
* Action du dispatcher.
|
|
6837
|
+
*/
|
|
6838
|
+
action: "addFinancer";
|
|
6839
|
+
/**
|
|
6840
|
+
* ID de la réponse (collection answers) portant la dépense.
|
|
6841
|
+
*/
|
|
6842
|
+
answer: string;
|
|
6843
|
+
/**
|
|
6844
|
+
* Jalon visé. PRÉFÉRER ce champ à `depenseKey` : le serveur résout la clé lui-même (findDepenseKeyForMilestone, Aap.php:7436-7456), ce qui évite le piège position/clé du tableau `depense`.
|
|
6845
|
+
*/
|
|
6846
|
+
milestoneId?: string;
|
|
6847
|
+
/**
|
|
6848
|
+
* Clé du sous-document dépense — la CLÉ Mongo (ex. "3"), PAS la position dans la liste densifiée. Requis seulement si `milestoneId` est absent (dépense orpheline).
|
|
6849
|
+
*/
|
|
6850
|
+
depenseKey?: string;
|
|
6851
|
+
/**
|
|
6852
|
+
* ID du financeur (citoyen, organisation ou projet).
|
|
6853
|
+
*/
|
|
6854
|
+
financerId: string;
|
|
6855
|
+
/**
|
|
6856
|
+
* Montant engagé, strictement positif.
|
|
6857
|
+
*/
|
|
6858
|
+
amount: number;
|
|
6859
|
+
[k: string]: unknown;
|
|
6860
|
+
}
|
|
6861
|
+
export interface CoremuPayFinancerData {
|
|
6862
|
+
action: "payFinancer";
|
|
6863
|
+
/**
|
|
6864
|
+
* ID de la réponse portant la dépense.
|
|
6865
|
+
*/
|
|
6866
|
+
answer: string;
|
|
6867
|
+
/**
|
|
6868
|
+
* Clé du sous-document dépense (CLÉ Mongo, pas la position).
|
|
6869
|
+
*/
|
|
6870
|
+
depenseKey: string;
|
|
6871
|
+
/**
|
|
6872
|
+
* ID du financeur dont on règle l'engagement.
|
|
6873
|
+
*/
|
|
6874
|
+
financerId: string;
|
|
6875
|
+
/**
|
|
6876
|
+
* Clé stable de la ligne visée — TOUJOURS l'envoyer. Le ciblage par position (`finIndex`) casse dès qu'une insertion concurrente décale le tableau. Résolution : finIndex → finkey → premier id (Aap.php:7131-7152).
|
|
6877
|
+
*/
|
|
6878
|
+
finkey?: string;
|
|
6879
|
+
/**
|
|
6880
|
+
* Position dans financer[] — repli pour les lignes antérieures à `finkey`.
|
|
6881
|
+
*/
|
|
6882
|
+
finIndex?: number;
|
|
6883
|
+
/**
|
|
6884
|
+
* Montant versé, strictement positif.
|
|
6885
|
+
*/
|
|
6886
|
+
amount: number;
|
|
6887
|
+
/**
|
|
6888
|
+
* Moyen du versement : 'manual' (défaut), 'stripe', 'helloasso'.
|
|
6889
|
+
*/
|
|
6890
|
+
payment_type?: string;
|
|
6891
|
+
/**
|
|
6892
|
+
* Référence du prestataire de paiement, journalisée avec le versement. Optionnelle — sans objet pour un versement manuel.
|
|
6893
|
+
*/
|
|
6894
|
+
transactionId?: string;
|
|
6895
|
+
[k: string]: unknown;
|
|
6896
|
+
}
|
|
6897
|
+
export interface CoremuValidateFinancerPaymentData {
|
|
6898
|
+
action: "validateFinancerPayment";
|
|
6899
|
+
/**
|
|
6900
|
+
* ID de la réponse portant la dépense.
|
|
6901
|
+
*/
|
|
6902
|
+
answer: string;
|
|
6903
|
+
/**
|
|
6904
|
+
* Clé du sous-document dépense (CLÉ Mongo, pas la position).
|
|
6905
|
+
*/
|
|
6906
|
+
depenseKey: string;
|
|
6907
|
+
/**
|
|
6908
|
+
* Identifiant du versement à valider, rendu par payFinancer.
|
|
6909
|
+
*/
|
|
6910
|
+
invoiceId: string;
|
|
6911
|
+
[k: string]: unknown;
|
|
6912
|
+
}
|
|
6913
|
+
export interface CoremuDeleteFinancerData {
|
|
6914
|
+
action: "deleteFinancer";
|
|
6915
|
+
/**
|
|
6916
|
+
* ID de la réponse portant la dépense.
|
|
6917
|
+
*/
|
|
6918
|
+
answer: string;
|
|
6919
|
+
/**
|
|
6920
|
+
* Clé du sous-document dépense (CLÉ Mongo, pas la position).
|
|
6921
|
+
*/
|
|
6922
|
+
depenseKey: string;
|
|
6923
|
+
/**
|
|
6924
|
+
* ID du financeur dont on retire l'engagement.
|
|
6925
|
+
*/
|
|
6926
|
+
financerId: string;
|
|
6927
|
+
/**
|
|
6928
|
+
* Clé stable de la ligne visée — à envoyer dès qu'elle existe.
|
|
6929
|
+
*/
|
|
6930
|
+
finkey?: string;
|
|
6931
|
+
/**
|
|
6932
|
+
* Position — repli pour les lignes sans `finkey`.
|
|
6933
|
+
*/
|
|
6934
|
+
finIndex?: number;
|
|
6935
|
+
[k: string]: unknown;
|
|
6936
|
+
}
|
|
6768
6937
|
export interface CostumProjectActionRequestNewData {
|
|
6769
6938
|
/**
|
|
6770
6939
|
* Nom de l'action
|
package/types/api/Event.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare class Event extends BaseEntity<EventItemNormalized> {
|
|
|
9
9
|
/** Bloc de création où injecter les champs costum (CostumScope). */
|
|
10
10
|
static COSTUM_ADD_CONSTANT: string;
|
|
11
11
|
static SCHEMA_CONSTANTS: string[];
|
|
12
|
-
static ADD_BLOCKS: Map<"
|
|
12
|
+
static ADD_BLOCKS: Map<"ADD_EVENT" | "PROFIL_IMAGE", "addEvent" | "updateImageProfil">;
|
|
13
13
|
static UPDATE_BLOCKS: Map<"UPDATE_BLOCK_SLUG" | "PROFIL_IMAGE", "updateImageProfil" | "updateSlug">;
|
|
14
14
|
defaultFields: Record<string, any>;
|
|
15
15
|
removeFields: string[];
|
|
@@ -95,8 +95,8 @@ export declare class Organization extends BaseEntity<OrganizationItemNormalized>
|
|
|
95
95
|
readonly updateMethod: "updateVideo";
|
|
96
96
|
readonly schemaConstant: "VIRTUAL_ORG_BASE_FIELDS";
|
|
97
97
|
}>;
|
|
98
|
-
static ADD_BLOCKS: Map<"
|
|
99
|
-
static UPDATE_BLOCKS: Map<"
|
|
98
|
+
static ADD_BLOCKS: Map<"PROFIL_IMAGE" | "UPDATE_BLOCK_SOCIAL" | "ADD_ORGANIZATION", "updateImageProfil" | "updateSocial" | "addOrganization">;
|
|
99
|
+
static UPDATE_BLOCKS: Map<"UPDATE_BLOCK_SLUG" | "PROFIL_IMAGE" | "UPDATE_BLOCK_DESCRIPTION" | "UPDATE_BLOCK_INFO" | "UPDATE_BLOCK_LOCALITY" | "UPDATE_BLOCK_SOCIAL", "updateImageProfil" | "updateSlug" | "updateDescription" | "updateLocality" | "updateInfo" | "updateSocial">;
|
|
100
100
|
defaultFields: Record<string, any>;
|
|
101
101
|
removeFields: string[];
|
|
102
102
|
transforms: Record<string, (val: any, full: any) => any>;
|
package/types/api/Poi.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare class Poi extends BaseEntity<PoiItemNormalized> {
|
|
|
8
8
|
static COSTUM_ADD_CONSTANT: string;
|
|
9
9
|
static SCHEMA_CONSTANTS: string[];
|
|
10
10
|
static ADD_BLOCKS: Map<"PROFIL_IMAGE" | "ADD_POI", "updateImageProfil" | "addPoi">;
|
|
11
|
-
static UPDATE_BLOCKS: Map<"
|
|
11
|
+
static UPDATE_BLOCKS: Map<"UPDATE_BLOCK_SLUG" | "PROFIL_IMAGE" | "UPDATE_BLOCK_DESCRIPTION" | "UPDATE_BLOCK_INFO" | "UPDATE_BLOCK_LOCALITY", "updateImageProfil" | "updateSlug" | "updateDescription" | "updateLocality" | "updateInfo">;
|
|
12
12
|
defaultFields: Record<string, any>;
|
|
13
13
|
removeFields: string[];
|
|
14
14
|
transforms: Record<string, (val: any, full?: any) => any>;
|
package/types/api/Project.d.ts
CHANGED
|
@@ -12,8 +12,8 @@ export declare class Project extends BaseEntity<ProjectItemNormalized> {
|
|
|
12
12
|
/** Bloc de création où injecter les champs costum (CostumScope). */
|
|
13
13
|
static COSTUM_ADD_CONSTANT: string;
|
|
14
14
|
static SCHEMA_CONSTANTS: string[];
|
|
15
|
-
static ADD_BLOCKS: Map<"PROFIL_IMAGE" | "ADD_PROJECT", "
|
|
16
|
-
static UPDATE_BLOCKS: Map<"
|
|
15
|
+
static ADD_BLOCKS: Map<"PROFIL_IMAGE" | "ADD_PROJECT", "updateImageProfil" | "addProject">;
|
|
16
|
+
static UPDATE_BLOCKS: Map<"UPDATE_BLOCK_SLUG" | "PROFIL_IMAGE" | "UPDATE_BLOCK_DESCRIPTION" | "UPDATE_BLOCK_INFO" | "UPDATE_BLOCK_LOCALITY" | "UPDATE_BLOCK_SOCIAL", "updateImageProfil" | "updateSlug" | "updateDescription" | "updateLocality" | "updateInfo" | "updateSocial">;
|
|
17
17
|
defaultFields: Record<string, any>;
|
|
18
18
|
removeFields: string[];
|
|
19
19
|
transforms: ProjectTransforms;
|