@communecter/cocolight-api-client 1.0.189 → 1.0.190
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/Answer.d.ts +75 -0
- package/types/api/EndpointApi.d.ts +22 -2
- package/types/api/EndpointApi.types.d.ts +83 -2
- package/types/endpoints.module.d.ts +572 -1
- package/types/index.d.ts +1 -1
package/package.json
CHANGED
package/types/api/Answer.d.ts
CHANGED
|
@@ -22,6 +22,27 @@ export interface AnswerChange {
|
|
|
22
22
|
mutationType: "create" | "update" | "";
|
|
23
23
|
changedFields: string[];
|
|
24
24
|
}
|
|
25
|
+
/** Options de `Answer.generateProject()` — équivalent `costum.contextId`/`costum.contextType` legacy. */
|
|
26
|
+
export interface GenerateProjectOptions {
|
|
27
|
+
/** ID de l'entité parente (org/site porteur de l'appel). */
|
|
28
|
+
parentId: string;
|
|
29
|
+
/** Type de l'entité parente (ex: `"organizations"`). */
|
|
30
|
+
parentType: string;
|
|
31
|
+
}
|
|
32
|
+
/** Résultat de `Answer.generateProject()` — le backend renvoie la clé française `projet`. */
|
|
33
|
+
export interface GenerateProjectResult {
|
|
34
|
+
projectId: string;
|
|
35
|
+
roomId: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Résultat de `Answer.generateMilestoneFromDepense()`. `milestoneId` peut être
|
|
39
|
+
* une chaîne VIDE si la clé de dépense passée ne correspond à aucune entrée du
|
|
40
|
+
* tableau `depense[]` — le backend renvoie quand même `{success:1}` dans ce cas
|
|
41
|
+
* (cf. DepenseMilestoneOperationAction.php:39-43).
|
|
42
|
+
*/
|
|
43
|
+
export interface GenerateMilestoneFromDepenseResult {
|
|
44
|
+
milestoneId: string;
|
|
45
|
+
}
|
|
25
46
|
/** Un axe du radar multi-eval (= un input radioNew d'une step donnée). */
|
|
26
47
|
export interface MultiEvalAxis {
|
|
27
48
|
key: string;
|
|
@@ -365,6 +386,60 @@ export declare class Answer extends BaseEntity<AnswerItemNormalized> {
|
|
|
365
386
|
* new Date(history[0].at * 1000); // date de la dernière modif (at en SECONDES)
|
|
366
387
|
*/
|
|
367
388
|
getHistory(): Promise<AnswerChange[]>;
|
|
389
|
+
/**
|
|
390
|
+
* Promeut cette Answer en Project + Room (génération **irréversible** — une
|
|
391
|
+
* fois `project.id` posé, un second appel échoue avec "Already have a
|
|
392
|
+
* project"). Construit le projet à partir du mapping `proposition`/
|
|
393
|
+
* `description`/`depense` du form de config AAP.
|
|
394
|
+
*
|
|
395
|
+
* Constant : `GENERATE_PROJECT_FROM_ANSWER` (POST
|
|
396
|
+
* `/survey/form/generateproject/answerId/{answerId}/parentId/{parentId}/parentType/{parentType}`,
|
|
397
|
+
* auth bearer — le backend pose `Yii::app()->session['userId']` comme
|
|
398
|
+
* créateur et pour la notification `PROPOSAL_TO_PROJECT`).
|
|
399
|
+
*
|
|
400
|
+
* @param opts.parentId - ID de l'entité parente (org/site porteur de l'appel).
|
|
401
|
+
* @param opts.parentType - Type de l'entité parente (ex: `"organizations"`).
|
|
402
|
+
* @returns `{ projectId, roomId }` — le backend renvoie la clé française `projet`.
|
|
403
|
+
* @throws {ApiError} 400 si Answer sans id, ou `parentId`/`parentType` manquants.
|
|
404
|
+
* @throws {ApiAuthenticationError} si non connecté.
|
|
405
|
+
* @throws {ApiError} 409 si un projet est déjà associé à cette réponse.
|
|
406
|
+
* @throws {ApiError} 422 si le mapping du form ne fournit pas de nom de projet exploitable.
|
|
407
|
+
*
|
|
408
|
+
* @example
|
|
409
|
+
* const result = await answer.generateProject({ parentId: costum.contextId, parentType: costum.contextType });
|
|
410
|
+
*/
|
|
411
|
+
generateProject(opts: GenerateProjectOptions): Promise<GenerateProjectResult>;
|
|
412
|
+
/**
|
|
413
|
+
* Sync answer→project pour UNE dépense de cette réponse (endpoint
|
|
414
|
+
* `GENERATE_MILESTONE_FROM_DEPENSE`,
|
|
415
|
+
* `POST /survey/form/depensemilestoneoperation`, auth bearer) : si la
|
|
416
|
+
* dépense `depenseKey` n'a pas encore de `milestone`, en crée un sur
|
|
417
|
+
* `project.oceco.milestones` ET pose `depense[depenseKey].milestone`,
|
|
418
|
+
* atomiquement côté serveur.
|
|
419
|
+
*
|
|
420
|
+
* L'endpoint serveur est idempotent (no-op si `!empty($dep["milestone"])`,
|
|
421
|
+
* `Answer::generateMilestonneFromDepense`), mais **cette méthode ne l'est
|
|
422
|
+
* pas** : un second appel sur la même dépense renvoie `{success:1,
|
|
423
|
+
* milestoneId:""}` côté serveur, que ce wrapper traite comme une erreur 502.
|
|
424
|
+
* L'appelant doit donc filtrer `if (depense.milestone) continue;` avant
|
|
425
|
+
* d'appeler (cf. `site-json` `associateExistingProject.ts`).
|
|
426
|
+
*
|
|
427
|
+
* Contrairement à `generateProject()`, exige que cette réponse ait DÉJÀ un
|
|
428
|
+
* projet associé (`answer.project.id` posé) — sinon `ApiError 400`
|
|
429
|
+
* (`"Don't have a project"`).
|
|
430
|
+
*
|
|
431
|
+
* @param depenseKey - Clé (index) de la dépense dans `answers.<step>.depense[]` —
|
|
432
|
+
* PAS un id Mongo. Une clé sans correspondance ne lève pas d'erreur côté
|
|
433
|
+
* serveur (`{success:1, milestoneId:""}`) — cette méthode le traite comme
|
|
434
|
+
* une erreur (502) plutôt que de renvoyer un id vide silencieusement.
|
|
435
|
+
* @throws {ApiError} 400 si Answer sans id, ou si aucun projet n'est associé.
|
|
436
|
+
* @throws {ApiAuthenticationError} si non connecté.
|
|
437
|
+
* @throws {ApiError} 502 si le serveur ne renvoie pas de `milestoneId` exploitable.
|
|
438
|
+
*
|
|
439
|
+
* @example
|
|
440
|
+
* const { milestoneId } = await answer.generateMilestoneFromDepense("0");
|
|
441
|
+
*/
|
|
442
|
+
generateMilestoneFromDepense(depenseKey: string): Promise<GenerateMilestoneFromDepenseResult>;
|
|
368
443
|
/**
|
|
369
444
|
* Récupère les datasets agrégés des évaluations multiples (radar) de cette
|
|
370
445
|
* 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, 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, 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, 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, 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";
|
|
3
3
|
/**
|
|
4
4
|
* Classe EndpointApi générée automatiquement depuis endpoints-copie.json
|
|
5
5
|
*/
|
|
@@ -260,7 +260,7 @@ export declare class EndpointApi {
|
|
|
260
260
|
*/
|
|
261
261
|
relaunchInvitation(data: RelaunchInvitationData): Promise<any>;
|
|
262
262
|
/**
|
|
263
|
-
* Envoyer un message depuis un formulaire de contact public : Programme un mail 'contactForm' vers l'adresse d'administration du costum, depuis un formulaire de contact public — pendant du bloc CMS legacy 'contact' (modules/costum/views/tpls/blockCms/contact/*.php, qui postent tous sur cette route). Envoi ASYNCHRONE : le message est mis dans la file cron (Mail::schedule), pas expédié dans la requête. ⚠ Le
|
|
263
|
+
* Envoyer un message depuis un formulaire de contact public : Programme un mail 'contactForm' vers l'adresse d'administration du costum, depuis un formulaire de contact public — pendant du bloc CMS legacy 'contact' (modules/costum/views/tpls/blockCms/contact/*.php, qui postent tous sur cette route). Envoi ASYNCHRONE : le message est mis dans la file cron (Mail::schedule), pas expédié dans la requête. ⚠ Le ou les DESTINATAIRES ne sont PAS des paramètres : ils sont résolus SERVEUR, dans l'ordre de priorité du legacy — `costum.contactMail` d'abord, `costum.admin.email` seulement en repli (contactForm.php:606 ; costum résolu par costumSlug — CacheHelper.php:73-76). `contactMail` peut porter PLUSIEURS adresses, et chacune reçoit alors son propre mail, comme Mail::createAndSend qui éclate un tableau ou une chaîne à virgules (Mail.php:1901-1916) — cas réel : sportSanteBienetre en déclare deux quand son admin.email n'en porte qu'une. Le contrat interdit donc tplMail/to/fromMail (additionalProperties:false) : la route legacy sous-jacente accepte un destinataire arbitraire sans aucune authentification (webhook Mailgun jamais implémenté, MailmanagementController.php:18-26) — ce contrat n'en expose QUE l'usage 'formulaire de contact'. ⚠ Si ni contactMail ni admin.email ne sont configurés, le legacy retombe en cascade sur to puis replyTo, c'est-à-dire qu'il renvoie le message à SON PROPRE EXPÉDITEUR : vérifier que le costum porte bien une adresse avant de brancher un formulaire. Le port Node, lui, REFUSE dans ce cas (et durcit : tpl en liste blanche, destinataire serveur, anti-abus par IP et par costum, longueurs bornées) — même esprit que RELAUNCH_INVITATION.
|
|
264
264
|
* Constant : CONTACT_SEND
|
|
265
265
|
* @param data - Données envoyées à l'API
|
|
266
266
|
* @returns Les données de réponse.
|
|
@@ -1333,6 +1333,26 @@ export declare class EndpointApi {
|
|
|
1333
1333
|
* @throws {Error} - En cas d'erreur inattendue.
|
|
1334
1334
|
*/
|
|
1335
1335
|
generateAnswerFromForm(data: GenerateAnswerFromFormData): Promise<any>;
|
|
1336
|
+
/**
|
|
1337
|
+
* Générer un projet à partir d'une réponse AAP : Promeut une réponse (Answer) AAP en Project + Room à partir du mapping du form de config (proposition/description/dépenses). Contrôleur : modules/survey/controllers/ocecoform/GenerateprojectAction.php:16-113 (mappé par FormController.php action 'generateproject'). Auth bearer obligatoire : Answer::GenerateProjectFromAnswer (Answer.php:625-767) pose Yii::app()->session['userId'] comme creator/idUserAuthor, et notifySwitchToProject (GenerateprojectAction.php:115-148) lit Yii::app()->session['userId'/'user'] pour la notification PROPOSAL_TO_PROJECT — ne fonctionne pas en session anonyme.
|
|
1338
|
+
* Constant : GENERATE_PROJECT_FROM_ANSWER
|
|
1339
|
+
* @param data - Données envoyées à l'API
|
|
1340
|
+
* @returns Les données de réponse.
|
|
1341
|
+
* @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
|
|
1342
|
+
* @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
|
|
1343
|
+
* @throws {Error} - En cas d'erreur inattendue.
|
|
1344
|
+
*/
|
|
1345
|
+
generateProjectFromAnswer(data: GenerateProjectFromAnswerData): Promise<any>;
|
|
1346
|
+
/**
|
|
1347
|
+
* Générer un milestone projet à partir d'une dépense de réponse : Sync answer→project pour UNE dépense : si answers.aapStep1.depense[depid] n'a pas encore de milestone, en crée un sur project.oceco.milestones ET pose depense[depid].milestone, atomiquement côté serveur (idempotent — no-op si déjà lié). Contrôleur : modules/survey/controllers/ocecoform/DepenseMilestoneOperationAction.php:12-68 (mappé par FormController.php, action 'depensemilestoneoperation'), délègue à Answer::generateMilestonneFromDepense (Answer.php, cf. GenerateprojectAction qui l'appelle aussi en boucle après une génération de projet). Seule l'action 'generateMilestone' est modélisée ici — l'endpoint PHP supporte aussi 'closeMilestone' (réponse de forme différente, hors scope). auth bearer par prudence (mutation projet/financement) bien que ni l'action ni generateMilestonneFromDepense ne lisent Yii::app()->session (contrairement à GenerateprojectAction).
|
|
1348
|
+
* Constant : GENERATE_MILESTONE_FROM_DEPENSE
|
|
1349
|
+
* @param data - Données envoyées à l'API
|
|
1350
|
+
* @returns Les données de réponse.
|
|
1351
|
+
* @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
|
|
1352
|
+
* @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
|
|
1353
|
+
* @throws {Error} - En cas d'erreur inattendue.
|
|
1354
|
+
*/
|
|
1355
|
+
generateMilestoneFromDepense(data: GenerateMilestoneFromDepenseData): Promise<any>;
|
|
1336
1356
|
/**
|
|
1337
1357
|
* Trouver les informations sur les enveloppes d’un formulaire : Trouver les informations sur les enveloppes d’un formulaire
|
|
1338
1358
|
* Constant : FUNDING_ENVELOPE
|
|
@@ -344,6 +344,14 @@ export interface UpdateBlockLocalityData {
|
|
|
344
344
|
* Nom de l'EPCI. Peut être vide.
|
|
345
345
|
*/
|
|
346
346
|
level5Name?: string;
|
|
347
|
+
/**
|
|
348
|
+
* NOM du decoupage infra-communal qui CONTIENT le point : bassin de vie, grand quartier, IRIS — tel que stocke dans `zoniris.name` (collection lue par `/co2/zone/getzoniris`). Ne se saisit pas : il est pose par calcul geometrique ($geoWithin du `geoPosition` dans le `geoShape` du contour, cf. `/co2/zone/associatezoniris`). C'est la valeur que filtrent les sites — `filters: {"address.zoniris": "Guillaume"}`, ou `$in` pour plusieurs bassins — et celle qu'emet une carte de contours cliquables. AUCUN rapport avec la chaine `levelN`, qui s'arrete a l'EPCI (level5) : `zoniris` descend SOUS la commune. Peut etre vide.
|
|
349
|
+
*/
|
|
350
|
+
zoniris?: string;
|
|
351
|
+
/**
|
|
352
|
+
* `_id` (24 hex, en STRING) du document `zoniris` designe par `zoniris`. Meme role que `localityId` face a `addressLocality` : il survit au renommage d'un contour et permet a l'association de reconnaitre ses propres ecritures lors d'un rejeu. Peut etre vide.
|
|
353
|
+
*/
|
|
354
|
+
zonirisId?: string;
|
|
347
355
|
postalCode?: string;
|
|
348
356
|
streetAddress?: string;
|
|
349
357
|
};
|
|
@@ -518,7 +526,7 @@ export interface RelaunchInvitationData {
|
|
|
518
526
|
}
|
|
519
527
|
export interface ContactSendData {
|
|
520
528
|
/**
|
|
521
|
-
* Slug du costum porteur — SEUL déterminant
|
|
529
|
+
* Slug du costum porteur — SEUL déterminant des destinataires (costum.contactMail, à défaut costum.admin.email).
|
|
522
530
|
*/
|
|
523
531
|
costumSlug: string;
|
|
524
532
|
/**
|
|
@@ -3034,6 +3042,14 @@ export interface AddOrganizationData {
|
|
|
3034
3042
|
* Nom de l'EPCI. Peut être vide.
|
|
3035
3043
|
*/
|
|
3036
3044
|
level5Name?: string;
|
|
3045
|
+
/**
|
|
3046
|
+
* NOM du decoupage infra-communal qui CONTIENT le point : bassin de vie, grand quartier, IRIS — tel que stocke dans `zoniris.name` (collection lue par `/co2/zone/getzoniris`). Ne se saisit pas : il est pose par calcul geometrique ($geoWithin du `geoPosition` dans le `geoShape` du contour, cf. `/co2/zone/associatezoniris`). C'est la valeur que filtrent les sites — `filters: {"address.zoniris": "Guillaume"}`, ou `$in` pour plusieurs bassins — et celle qu'emet une carte de contours cliquables. AUCUN rapport avec la chaine `levelN`, qui s'arrete a l'EPCI (level5) : `zoniris` descend SOUS la commune. Peut etre vide.
|
|
3047
|
+
*/
|
|
3048
|
+
zoniris?: string;
|
|
3049
|
+
/**
|
|
3050
|
+
* `_id` (24 hex, en STRING) du document `zoniris` designe par `zoniris`. Meme role que `localityId` face a `addressLocality` : il survit au renommage d'un contour et permet a l'association de reconnaitre ses propres ecritures lors d'un rejeu. Peut etre vide.
|
|
3051
|
+
*/
|
|
3052
|
+
zonirisId?: string;
|
|
3037
3053
|
postalCode?: string;
|
|
3038
3054
|
streetAddress?: string;
|
|
3039
3055
|
};
|
|
@@ -3335,6 +3351,14 @@ export interface AddProjectData {
|
|
|
3335
3351
|
* Nom de l'EPCI. Peut être vide.
|
|
3336
3352
|
*/
|
|
3337
3353
|
level5Name?: string;
|
|
3354
|
+
/**
|
|
3355
|
+
* NOM du decoupage infra-communal qui CONTIENT le point : bassin de vie, grand quartier, IRIS — tel que stocke dans `zoniris.name` (collection lue par `/co2/zone/getzoniris`). Ne se saisit pas : il est pose par calcul geometrique ($geoWithin du `geoPosition` dans le `geoShape` du contour, cf. `/co2/zone/associatezoniris`). C'est la valeur que filtrent les sites — `filters: {"address.zoniris": "Guillaume"}`, ou `$in` pour plusieurs bassins — et celle qu'emet une carte de contours cliquables. AUCUN rapport avec la chaine `levelN`, qui s'arrete a l'EPCI (level5) : `zoniris` descend SOUS la commune. Peut etre vide.
|
|
3356
|
+
*/
|
|
3357
|
+
zoniris?: string;
|
|
3358
|
+
/**
|
|
3359
|
+
* `_id` (24 hex, en STRING) du document `zoniris` designe par `zoniris`. Meme role que `localityId` face a `addressLocality` : il survit au renommage d'un contour et permet a l'association de reconnaitre ses propres ecritures lors d'un rejeu. Peut etre vide.
|
|
3360
|
+
*/
|
|
3361
|
+
zonirisId?: string;
|
|
3338
3362
|
postalCode?: string;
|
|
3339
3363
|
streetAddress?: string;
|
|
3340
3364
|
};
|
|
@@ -3475,6 +3499,14 @@ export interface AddPoiData {
|
|
|
3475
3499
|
* Nom de l'EPCI. Peut être vide.
|
|
3476
3500
|
*/
|
|
3477
3501
|
level5Name?: string;
|
|
3502
|
+
/**
|
|
3503
|
+
* NOM du decoupage infra-communal qui CONTIENT le point : bassin de vie, grand quartier, IRIS — tel que stocke dans `zoniris.name` (collection lue par `/co2/zone/getzoniris`). Ne se saisit pas : il est pose par calcul geometrique ($geoWithin du `geoPosition` dans le `geoShape` du contour, cf. `/co2/zone/associatezoniris`). C'est la valeur que filtrent les sites — `filters: {"address.zoniris": "Guillaume"}`, ou `$in` pour plusieurs bassins — et celle qu'emet une carte de contours cliquables. AUCUN rapport avec la chaine `levelN`, qui s'arrete a l'EPCI (level5) : `zoniris` descend SOUS la commune. Peut etre vide.
|
|
3504
|
+
*/
|
|
3505
|
+
zoniris?: string;
|
|
3506
|
+
/**
|
|
3507
|
+
* `_id` (24 hex, en STRING) du document `zoniris` designe par `zoniris`. Meme role que `localityId` face a `addressLocality` : il survit au renommage d'un contour et permet a l'association de reconnaitre ses propres ecritures lors d'un rejeu. Peut etre vide.
|
|
3508
|
+
*/
|
|
3509
|
+
zonirisId?: string;
|
|
3478
3510
|
postalCode?: string;
|
|
3479
3511
|
streetAddress?: string;
|
|
3480
3512
|
};
|
|
@@ -3785,6 +3817,14 @@ export interface AddEventData {
|
|
|
3785
3817
|
* Nom de l'EPCI. Peut être vide.
|
|
3786
3818
|
*/
|
|
3787
3819
|
level5Name?: string;
|
|
3820
|
+
/**
|
|
3821
|
+
* NOM du decoupage infra-communal qui CONTIENT le point : bassin de vie, grand quartier, IRIS — tel que stocke dans `zoniris.name` (collection lue par `/co2/zone/getzoniris`). Ne se saisit pas : il est pose par calcul geometrique ($geoWithin du `geoPosition` dans le `geoShape` du contour, cf. `/co2/zone/associatezoniris`). C'est la valeur que filtrent les sites — `filters: {"address.zoniris": "Guillaume"}`, ou `$in` pour plusieurs bassins — et celle qu'emet une carte de contours cliquables. AUCUN rapport avec la chaine `levelN`, qui s'arrete a l'EPCI (level5) : `zoniris` descend SOUS la commune. Peut etre vide.
|
|
3822
|
+
*/
|
|
3823
|
+
zoniris?: string;
|
|
3824
|
+
/**
|
|
3825
|
+
* `_id` (24 hex, en STRING) du document `zoniris` designe par `zoniris`. Meme role que `localityId` face a `addressLocality` : il survit au renommage d'un contour et permet a l'association de reconnaitre ses propres ecritures lors d'un rejeu. Peut etre vide.
|
|
3826
|
+
*/
|
|
3827
|
+
zonirisId?: string;
|
|
3788
3828
|
postalCode?: string;
|
|
3789
3829
|
streetAddress?: string;
|
|
3790
3830
|
};
|
|
@@ -6164,6 +6204,39 @@ export interface GenerateAnswerFromFormData {
|
|
|
6164
6204
|
};
|
|
6165
6205
|
[k: string]: unknown;
|
|
6166
6206
|
}
|
|
6207
|
+
export interface GenerateProjectFromAnswerData {
|
|
6208
|
+
pathParams?: {
|
|
6209
|
+
/**
|
|
6210
|
+
* ID de la réponse (collection answers) à promouvoir en projet. Vide → {success:0, content:'Empty answer id'} (GenerateprojectAction.php:17-21).
|
|
6211
|
+
*/
|
|
6212
|
+
answerId: string;
|
|
6213
|
+
/**
|
|
6214
|
+
* ID de l'entité parente (costum.contextId legacy) sous laquelle le projet est rattaché (GenerateprojectAction.php:40-46).
|
|
6215
|
+
*/
|
|
6216
|
+
parentId: string;
|
|
6217
|
+
/**
|
|
6218
|
+
* Type de l'entité parente (costum.contextType legacy, ex: 'organizations') (GenerateprojectAction.php:40-46).
|
|
6219
|
+
*/
|
|
6220
|
+
parentType: string;
|
|
6221
|
+
[k: string]: unknown;
|
|
6222
|
+
};
|
|
6223
|
+
[k: string]: unknown;
|
|
6224
|
+
}
|
|
6225
|
+
export interface GenerateMilestoneFromDepenseData {
|
|
6226
|
+
/**
|
|
6227
|
+
* ID de la réponse (collection answers) portant la dépense. Vide → {success:0, content:'Empty answer id'} (DepenseMilestoneOperationAction.php:23-27). Sans project.id déjà posé sur l'answer → {success:0, content:"Don't have a project"} (:29-33) — cet endpoint est conçu pour être appelé APRÈS association/génération d'un projet, jamais avant.
|
|
6228
|
+
*/
|
|
6229
|
+
answerId: string;
|
|
6230
|
+
/**
|
|
6231
|
+
* Clé (index) de la dépense dans answers.aapStep1.depense[] — PAS un id Mongo. Une clé qui ne matche aucune entrée du tableau ne déclenche pas d'erreur : la réponse reste {success:1} avec milestoneId vide (DepenseMilestoneOperationAction.php:39-43, $milestoneId non réaffecté dans ce cas).
|
|
6232
|
+
*/
|
|
6233
|
+
depid: string;
|
|
6234
|
+
/**
|
|
6235
|
+
* Seule valeur modélisée par ce contrat (DepenseMilestoneOperationAction.php:36-50). Une valeur non reconnue, ou un answer sans aucune dépense, retombe sur le fallback {error:0} (:66, $args initial jamais modifié).
|
|
6236
|
+
*/
|
|
6237
|
+
action: "generateMilestone";
|
|
6238
|
+
[k: string]: unknown;
|
|
6239
|
+
}
|
|
6167
6240
|
export interface FundingEnvelopeData {
|
|
6168
6241
|
/**
|
|
6169
6242
|
* ID du contexte de l’entité
|
|
@@ -6244,7 +6317,7 @@ export interface CostumProjectActionRequestNewData {
|
|
|
6244
6317
|
*/
|
|
6245
6318
|
milestone?: {
|
|
6246
6319
|
/**
|
|
6247
|
-
* ID du jalon
|
|
6320
|
+
* ID du jalon (project.oceco.milestones[].milestoneId) — chaîne LIBRE, aucun format garanti : ObjectId 24 hex (créé côté client via generateMilestoneId), uniqid() PHP 13 hex (Answer::generateMilestonneFromDepense, boucle de GenerateprojectAction sur les dépenses d'une réponse AAC promue en projet), ou identifiants legacy non-hex. Le backend ActionAction::run() case 'new' ne valide pas le format ; la seule vérif d'existence est Project.hasMilestone (appartenance à oceco.milestones[]).
|
|
6248
6321
|
*/
|
|
6249
6322
|
milestoneId: string;
|
|
6250
6323
|
/**
|
|
@@ -6568,6 +6641,14 @@ export interface AddClassifiedData {
|
|
|
6568
6641
|
level4Name?: string;
|
|
6569
6642
|
level5?: string;
|
|
6570
6643
|
level5Name?: string;
|
|
6644
|
+
/**
|
|
6645
|
+
* NOM du decoupage infra-communal qui CONTIENT le point : bassin de vie, grand quartier, IRIS — tel que stocke dans `zoniris.name` (collection lue par `/co2/zone/getzoniris`). Ne se saisit pas : il est pose par calcul geometrique ($geoWithin du `geoPosition` dans le `geoShape` du contour, cf. `/co2/zone/associatezoniris`). C'est la valeur que filtrent les sites — `filters: {"address.zoniris": "Guillaume"}`, ou `$in` pour plusieurs bassins — et celle qu'emet une carte de contours cliquables. AUCUN rapport avec la chaine `levelN`, qui s'arrete a l'EPCI (level5) : `zoniris` descend SOUS la commune. Peut etre vide.
|
|
6646
|
+
*/
|
|
6647
|
+
zoniris?: string;
|
|
6648
|
+
/**
|
|
6649
|
+
* `_id` (24 hex, en STRING) du document `zoniris` designe par `zoniris`. Meme role que `localityId` face a `addressLocality` : il survit au renommage d'un contour et permet a l'association de reconnaitre ses propres ecritures lors d'un rejeu. Peut etre vide.
|
|
6650
|
+
*/
|
|
6651
|
+
zonirisId?: string;
|
|
6571
6652
|
postalCode?: string;
|
|
6572
6653
|
streetAddress?: string;
|
|
6573
6654
|
};
|