new-discussion.ts
1 import { RequestFN } from "~/core/request-function"; 2 import { EntityState, NewDiscussionRecipient, SessionHandle, TabLocation } from "~/models"; 3 import { apiProperties } from "./private/api-properties"; 4 5 /** 6 * Create a discussion. 7 * 8 * Sadly, we can't get the ID of the created discussion 9 * or anything else related to it, you need to request the 10 * discussions list once again. 11 */ 12 export const newDiscussion = async ( 13 session: SessionHandle, 14 subject: string, 15 content: string, 16 recipients: Array<NewDiscussionRecipient> 17 ): Promise<void> => { 18 const properties = apiProperties(session); 19 const request = new RequestFN(session, "SaisieMessage", { 20 [properties.signature]: { onglet: TabLocation.Discussions }, 21 22 [properties.data]: { 23 contenu: session.user.authorizations.hasAdvancedDiscussionEditor ? { 24 _T: 21, 25 V: content 26 } : content, 27 28 objet: subject, 29 estCreationCarnetLiaison: false, 30 listeFichiers: [], 31 listeDestinataires: recipients.map((recipient) => ({ 32 E: EntityState.MODIFICATION, 33 G: recipient.kind, 34 N: recipient.id 35 })) 36 } 37 }); 38 39 await request.send(); 40 };