From 582df8885a3573a728394b473b826616f8969316 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Wed, 5 Aug 2026 11:51:51 +0200 Subject: convert a lot of js to typescript and use a single graduation DB --- src/group.ts | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/group.ts (limited to 'src/group.ts') diff --git a/src/group.ts b/src/group.ts new file mode 100644 index 0000000..e840ffd --- /dev/null +++ b/src/group.ts @@ -0,0 +1,45 @@ +import type { Student } from "./student-common.ts"; + +/** + * Class to represent a Group of Students. + */ +class Group { + name: string; + students: Array = []; + + constructor(name: string, students?: Array) { + this.name = name; + if (typeof students !== "undefined") { + this.students = students; + } + } + + setStudents(students: Array) { + this.students = students; + } + + addStudent(student: Student) { + this.students.push(student); + } + + async getStudents() { + return this.students; + } +} + +const groups = new Map(); + +function buildGroups(students: Array) { + for (const student of students) { + let group = groups.get(student.group); + + if (!group) { + group = new Group(student.group); + groups.set(student.group, group); + } + + group.addStudent(student); + } +} + +export { Group, buildGroups, groups as _groups }; -- cgit v1.2.3