/ src / api / notebook.ts
notebook.ts
 1  import { RequestFN } from "~/core/request-function";
 2  import { decodeNotebook } from "~/decoders/notebook";
 3  import { encodePeriod } from "~/encoders/period";
 4  import { encodePronoteDate } from "~/encoders/pronote-date";
 5  import { type SessionHandle, type Notebook, type Period, TabLocation } from "~/models";
 6  import { apiProperties } from "./private/api-properties";
 7  
 8  export const notebook = async (session: SessionHandle, period: Period): Promise<Notebook> => {
 9    const properties = apiProperties(session);
10  
11    const request = new RequestFN(session, "PagePresence", {
12      [properties.signature]: { onglet: TabLocation.Notebook },
13  
14      [properties.data]: {
15        periode: encodePeriod(period),
16  
17        DateDebut: {
18          _T: 7,
19          V: encodePronoteDate(period.startDate)
20        },
21  
22        DateFin: {
23          _T: 7,
24          V: encodePronoteDate(period.endDate)
25        }
26      }
27    });
28  
29    const response = await request.send();
30    return decodeNotebook(response.data[properties.data], session);
31  };