Skip to content

Commit

Permalink
Fix some error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
AlbertMarashi committed Jul 15, 2024
1 parent cc4dda5 commit 6ecc776
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 13 deletions.
3 changes: 2 additions & 1 deletion src/lib/stores/alerts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type { Writable } from "svelte/store"
import { writable } from "svelte/store"

export type AlertsStore = {
create_alert: (type: Message["type"], message: string | Error | unknown) => void,
create_alert: (type: Message["type"], message: string | Error | unknown | Array<Error>) => void,
store: Writable<Message[]>
}

Expand All @@ -25,6 +25,7 @@ export const alerts_init = (messages: Message[]): AlertsStore => {
if("message" in error && typeof error.message === "string") message = error.message
if("code" in error && typeof error.code === "string") code = error.code
}
else if (error instanceof Array) message = `An unknown error occurred: ${JSON.stringify(error)}`
else if (typeof error !== "string") message = `An unknown error occurred: ${JSON.stringify(error)}`
else message = error

Expand Down
2 changes: 1 addition & 1 deletion src/lib/utils/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export async function api<T>(url: string, method: string, body: Record<string, u
})

if (!res.ok) {
throw new Error(await res.json())
throw await res.json()
} else {
return await res.json()
}
Expand Down
23 changes: 12 additions & 11 deletions src/lib/utils/login.svelte.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,20 @@ export async function login(email: string, password: string) {
method: "email_password"
})

const { token, error } = await api<{ token: string, error: unknown }>("/api/login", "POST", {
email,
password,
})
try {
const { token } = await api<{ token: string, error: unknown }>("/api/login", "POST", {
email,
password,
})

if (error) {
page_data.alerts.create_alert("success", "Login Successful")
await db.authenticate(token)
set_cookie("token", null)
set_cookie("token", token)
await invalidateAll()
} catch (error) {
console.error(error)
page_data.alerts.create_alert("error", error)
throw new Error("Failed to login")
}

page_data.alerts.create_alert("success", "Login Successful")
await db.authenticate(token)
set_cookie("token", null)
set_cookie("token", token)
await invalidateAll()
}

0 comments on commit 6ecc776

Please sign in to comment.