From 39aa5cb7ea59f3b23773a65f20ad7b5ff5773e08 Mon Sep 17 00:00:00 2001 From: James Cook Date: Fri, 24 Jun 2022 13:15:13 +0100 Subject: [PATCH] feat: attendance filtering Co-authored-by: Harrison --- src/baseClient.ts | 11 +++++++++-- src/types.ts | 11 +++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/baseClient.ts b/src/baseClient.ts index fab6ded..4174a11 100644 --- a/src/baseClient.ts +++ b/src/baseClient.ts @@ -8,6 +8,7 @@ import type { BehaviourResponse, DetentionsResponse, GetActivityOptions, + GetAttendanceOptions, GetBehaviourOptions, GetFullActivityOptions, GetHomeworkOptions, @@ -219,11 +220,17 @@ export class ClasschartsClient { } /** * Gets the logged in student's attendance + * @param options GetAttendanceOptions * @returns Array of dates of attendance */ - async listAttendance(): Promise { + async listAttendance( + options?: GetAttendanceOptions + ): Promise { + const params = new URLSearchParams(); + options?.from && params.append("from", options?.from); + options?.to && params.append("to", options?.to); return await this.makeAuthedRequest( - this.API_BASE + "/attendance/" + this.studentId, + this.API_BASE + "/attendance/" + this.studentId + "?" + params.toString(), { method: "GET", } diff --git a/src/types.ts b/src/types.ts index 8363f01..83f3567 100644 --- a/src/types.ts +++ b/src/types.ts @@ -311,6 +311,17 @@ export interface GetFullActivityOptions { to: string; } +export interface GetAttendanceOptions { + /** + * From date, in format YYYY-MM-DD + */ + from: string; + /** + * To date, in format YYYY-MM-DD + */ + to: string; +} + export interface AttendanceDate { AM: { code: string;