resource-assignments.ts
1 import { RequestFN } from "~/core/request-function"; 2 import { decodeAssignment } from "~/decoders/assignment"; 3 import { TabLocation, type Assignment, type SessionHandle } from "~/models"; 4 import { apiProperties } from "./private/api-properties"; 5 6 /** 7 * Retrieve assignments from a resource. 8 * @param session - The current session handle. 9 * @param resourceID - The ID of the resource. 10 * @returns A promise that resolves to an array of assignments. 11 */ 12 export const resourceAssignments = async (session: SessionHandle, resourceID: string): Promise<Array<Assignment>> => { 13 const properties = apiProperties(session); 14 15 const request = new RequestFN(session, "donneesContenusCDT", { 16 [properties.signature]: { onglet: TabLocation.Resources }, 17 18 [properties.data]: { 19 pourTAF: true, 20 cahierDeTextes: { N: resourceID } 21 } 22 }); 23 24 const response = await request.send(); 25 26 return response.data[properties.data].ListeCahierDeTextes.V[0].ListeTravailAFaire.V 27 .map((assignment: any) => decodeAssignment(assignment, session)); 28 };