From da3e73d1dabb2a881b840dc223d27369597e134c Mon Sep 17 00:00:00 2001 From: Furkan Sahin Date: Wed, 8 Jun 2022 19:50:42 -0500 Subject: Add support to manually parse a db file and update the lab and PT stores --- src/util/parser.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) 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(), + peerTeachers: new Map() + } + + 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 -- cgit v1.2.3