Skip to content

Commit 008f320

Browse files
committed
feat(timetable): add convenience method to fetch and parse an entry
1 parent c68fba1 commit 008f320

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed
File renamed without changes.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { OnlineTimetable, TimetableYear } from "unilim/iut/cs/timetable";
2+
3+
const last = await OnlineTimetable.getLatestTimetableEntry(TimetableYear.A1);
4+
const timetable = await last.getTimetable();
5+
6+
console.dir(timetable, { depth: Infinity });

src/iut/cs/timetable/online/OnlineTimetableFileEntry.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import type { TimetableYear } from "../models/TimetableYear";
2+
import type { Timetable } from "../parser";
23
import { DateTime } from "luxon";
4+
import { HttpRequest, send } from "schwi";
5+
import { getTimetableFromBuffer } from "../parser";
36
import { DATE_TIME_OPTIONS } from "../utils/date";
47
import { OnlineTimetable } from "./OnlineTimetable";
58

@@ -45,4 +48,14 @@ export class OnlineTimetableFileEntry {
4548
this.fromYear = fromYear;
4649
this.url = new URL(`${OnlineTimetable.HOST}/${fromYear}/${fileName}`);
4750
}
51+
52+
public async getTimetable(): Promise<Timetable> {
53+
const request = new HttpRequest.Builder(this.url)
54+
.build();
55+
56+
const response = await send(request);
57+
const buffer = await response.toArrayBuffer();
58+
59+
return getTimetableFromBuffer(buffer);
60+
}
4861
}

0 commit comments

Comments
 (0)