From 04b72babcf6e69dc215086f5b43b37513cd3ca78 Mon Sep 17 00:00:00 2001 From: James Cook Date: Wed, 25 May 2022 18:18:31 +0100 Subject: [PATCH] feat: attendance --- src/baseClient.ts | 13 +++++++++++++ src/parentClient.ts | 2 +- src/studentClient.ts | 1 - src/types.ts | 15 +++++++++++++++ 4 files changed, 29 insertions(+), 2 deletions(-) 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