aboutsummaryrefslogtreecommitdiff
path: root/src/util/parser.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/parser.ts')
-rw-r--r--src/util/parser.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/util/parser.ts b/src/util/parser.ts
index 844f87d..0f82996 100644
--- a/src/util/parser.ts
+++ b/src/util/parser.ts
@@ -1,6 +1,7 @@
import EventInfo from "../models/EventInfo";
import Lab from "../models/Lab";
import PeerTeacher from "../models/PeerTeacher";
+import { labStore, ptStore } from "../stores";
import { PeerTeacherImportError } from "./error";
interface LabSchedule {
@@ -156,4 +157,27 @@ export function parseDatabase(database: DatabaseFile) {
});
return result;
+}
+
+/**
+ * Parses a JSON database into maps of Lab and Peer Teachers
+ * and updates local storage
+ * @param database The database object from a db file
+ */
+export function parseDatabaseLocal(database: DatabaseFile) {
+ const result = {
+ labs: new Map<number, Lab>(),
+ peerTeachers: new Map<number, PeerTeacher>()
+ }
+
+ database.labs.forEach(lab => {
+ result.labs.set(lab.id, Lab.fromJSON(lab));
+ });
+
+ database.peerTeachers.forEach(pt => {
+ result.peerTeachers.set(pt.id, PeerTeacher.fromJSON(pt));
+ });
+
+ labStore.set(result.labs);
+ ptStore.set(result.peerTeachers)
} \ No newline at end of file