gradebook-pdf.ts
1 import { RequestFN } from "~/core/request-function"; 2 import { encodePeriod } from "~/encoders/period"; 3 import { type Period, type SessionHandle, TabLocation } from "~/models"; 4 import { apiProperties } from "./private/api-properties"; 5 6 /** 7 * @param period - Period the grades report will be from. 8 * @returns URL to download the PDF file. 9 */ 10 export const gradebookPDF = async (session: SessionHandle, period: Period): Promise<string> => { 11 const properties = apiProperties(session); 12 13 const request = new RequestFN(session, "GenerationPDF", { 14 [properties.data]: { 15 avecCodeCompetences: false, 16 genreGenerationPDF: 2, 17 18 options: { // defaults from PRONOTE 19 adapterHauteurService: false, 20 desEleves: false, 21 gererRectoVerso: false, 22 hauteurServiceMax: 15, 23 hauteurServiceMin: 10, 24 piedMonobloc: true, 25 portrait: true, 26 taillePolice: 6.5, 27 taillePoliceMin: 5, 28 taillePolicePied: 6.5, 29 taillePolicePiedMin: 5 30 }, 31 32 periode: encodePeriod(period) 33 }, 34 35 [properties.signature]: { onglet: TabLocation.Gradebook } 36 }); 37 38 const response = await request.send(); 39 return session.information.url + "/" + encodeURI(response.data[properties.data].url.V); 40 };