diff --git a/website/src/lib/backend-calls.ts b/website/src/lib/backend-calls.ts index 6170b32..3d639cd 100644 --- a/website/src/lib/backend-calls.ts +++ b/website/src/lib/backend-calls.ts @@ -75,5 +75,13 @@ async function myFetch( body: JSON.stringify(body), } : {}, }); - return await response.json() as AT.APIResponse; + const text = await response.text(); + try { + return JSON.parse(text); + } catch (e) { + return { + ok: false, + error: `error parsing json for: ${text}`, + }; + } } diff --git a/website/src/lib/pouch-dbs.ts b/website/src/lib/pouch-dbs.ts index 4f8ab3b..e2a3e49 100644 --- a/website/src/lib/pouch-dbs.ts +++ b/website/src/lib/pouch-dbs.ts @@ -42,25 +42,14 @@ const dbs: DBS = { }; export function startLocalDbs(user: AT.LingdocsUser, refreshFns: { wordlist: () => void, reviewTasks: () => void }) { - if (user.level === "basic") { - initializeLocalDb("submissions", () => null, user); - } - if (user.level === "student") { - initializeLocalDb("submissions", () => null, user); - initializeLocalDb("wordlist", refreshFns.wordlist, user); - } - if (user.level === "editor") { - deInitializeLocalDb("submissions"); - initializeLocalDb("reviewTasks", refreshFns.reviewTasks, user); - initializeLocalDb("wordlist", refreshFns.wordlist, user); - } + initializeLocalDb("submissions", () => null, user); + (user.level !== "basic") && initializeLocalDb("wordlist", refreshFns.wordlist, user); + (user.level === "editor") && initializeLocalDb("reviewTasks", refreshFns.reviewTasks, user); } function deInitializeLocalDb(type: LocalDbType) { const db = dbs[type]; - if (db && "sync" in db) { - db.sync.cancel(); - } + (db && "sync" in db) && db.sync.cancel(); dbs[type] = undefined; }