diff options
Diffstat (limited to 'src/util/parser.ts')
| -rw-r--r-- | src/util/parser.ts | 24 |
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 |
