aboutsummaryrefslogtreecommitdiff
path: root/src/models/PeerTeacher.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/models/PeerTeacher.ts')
-rw-r--r--src/models/PeerTeacher.ts21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/models/PeerTeacher.ts b/src/models/PeerTeacher.ts
index 6518a80..f1a8739 100644
--- a/src/models/PeerTeacher.ts
+++ b/src/models/PeerTeacher.ts
@@ -1,4 +1,16 @@
-import type EventInfo from "./EventInfo";
+import EventInfo from "./EventInfo";
+
+interface PeerTeacherSerializeInfo {
+ id: number,
+ firstname: string,
+ lastname: string,
+ events: {
+ days: string,
+ start: number,
+ end: number
+ }[],
+ labs: number[]
+}
export default class PeerTeacher {
id: number;
@@ -18,4 +30,11 @@ export default class PeerTeacher {
this.events = [];
this.labs = new Set();
}
+
+ static fromJSON({id, firstname, lastname, events, labs}: PeerTeacherSerializeInfo) {
+ const pt = new PeerTeacher(id, firstname, lastname);
+ pt.events = events.map(e => EventInfo.fromJSON(e));
+ pt.labs = new Set(labs);
+ return pt;
+ }
} \ No newline at end of file