grades-overview.ts
1 import { RequestFN } from "~/core/request-function"; 2 import { decodeGradesOverview } from "~/decoders/grades-overview"; 3 import { encodePeriod } from "~/encoders/period"; 4 import { type Period, type GradesOverview, type SessionHandle, TabLocation } from "~/models"; 5 import { apiProperties } from "./private/api-properties"; 6 7 /** 8 * Get grades overview for a specific period. 9 * Including student's grades with averages and the global averages 10 */ 11 export const gradesOverview = async (session: SessionHandle, period: Period): Promise<GradesOverview> => { 12 const properties = apiProperties(session); 13 14 const request = new RequestFN(session, "DernieresNotes", { 15 [properties.signature]: { onglet: TabLocation.Grades }, 16 17 [properties.data]: { 18 Periode: encodePeriod(period) 19 } 20 }); 21 22 const response = await request.send(); 23 return decodeGradesOverview(response.data[properties.data], session); 24 };