/ src / api / resource-assignments.ts
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  };