diff --git a/src/baseClient.ts b/src/baseClient.ts index f4ecee3..fab6ded 100644 --- a/src/baseClient.ts +++ b/src/baseClient.ts @@ -3,6 +3,7 @@ import type { AxiosRequestConfig, AxiosInstance } from "axios"; import type { ActivityResponse, AnnouncementsResponse, + AttendanceResponse, BadgesResponse, BehaviourResponse, DetentionsResponse, @@ -216,4 +217,16 @@ export class ClasschartsClient { } ); } + /** + * Gets the logged in student's attendance + * @returns Array of dates of attendance + */ + async listAttendance(): Promise { + return await this.makeAuthedRequest( + this.API_BASE + "/attendance/" + this.studentId, + { + method: "GET", + } + ); + } } diff --git a/src/parentClient.ts b/src/parentClient.ts index eaf9520..a3fc497 100644 --- a/src/parentClient.ts +++ b/src/parentClient.ts @@ -1,4 +1,4 @@ -import axios, { AxiosInstance, AxiosRequestConfig } from "axios"; +import type { AxiosRequestConfig } from "axios"; import type { GetPupilsResponse } from "./types"; import { ClasschartsClient } from "./baseClient"; diff --git a/src/studentClient.ts b/src/studentClient.ts index 5f8bcfb..b4e5d03 100644 --- a/src/studentClient.ts +++ b/src/studentClient.ts @@ -1,4 +1,3 @@ -import axios from "axios"; import type { AxiosRequestConfig } from "axios"; import { API_BASE_STUDENT, BASE_URL } from "./consts"; import { ClasschartsClient } from "./baseClient"; diff --git a/src/types.ts b/src/types.ts index 2e0660a..8363f01 100644 --- a/src/types.ts +++ b/src/types.ts @@ -310,3 +310,18 @@ export interface GetFullActivityOptions { */ to: string; } + +export interface AttendanceDate { + AM: { + code: string; + status: "present" | "ignore"; + late_minutes: number; + }; + PM: { + code: string; + status: "present" | "ignore"; + late_minutes: number; + }; +} + +export type AttendanceResponse = Array>; \ No newline at end of file