aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2022-07-17 23:29:58 -0400
committerFurkan Sahin <furkan-dev@proton.me>2022-07-17 23:29:58 -0400
commite36e01917651ccfff64f948c36ee93d310071991 (patch)
tree8f7e2f19980474689ef626d0f9906d0f1b197cac /src/util
parent79242a197b79e7a3dc5a30925ecd7709093a6866 (diff)
parent99aee9a7281aa9c5794cc062e41384dc3701906d (diff)
Merge pull request #1 from sahinf/tailwind
Tailwind
Diffstat (limited to 'src/util')
-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