diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2022-06-08 19:50:42 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2022-06-08 19:50:42 -0500 |
| commit | da3e73d1dabb2a881b840dc223d27369597e134c (patch) | |
| tree | 85b631997a4c6f0a2b528ea491fa4aca4141ad71 /src/util | |
| parent | f8915cfa1f70d837fe89f0af61fb36ed9bcf52f8 (diff) | |
Add support to manually parse a db file and update the lab and PT stores
Diffstat (limited to 'src/util')
| -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 |
