aboutsummaryrefslogtreecommitdiff
path: root/src/models/PeerTeacher.ts
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2021-09-05 22:56:45 -0500
committerFurkan Sahin <furkan-dev@proton.me>2021-09-05 22:56:45 -0500
commitfea56ae09cd612003e1bafd2459556b67a5950e9 (patch)
treea195fab20351891e6a65f68d77b88bf8c9671e75 /src/models/PeerTeacher.ts
parentd0975a6e7ee57de4debda94e823011d813fbf4a1 (diff)
Add import/export functionality
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