summaryrefslogtreecommitdiff
path: root/ui/lib/session.svelte.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/lib/session.svelte.js')
-rw-r--r--ui/lib/session.svelte.js24
1 files changed, 14 insertions, 10 deletions
diff --git a/ui/lib/session.svelte.js b/ui/lib/session.svelte.js
index b953d9c..21a391d 100644
--- a/ui/lib/session.svelte.js
+++ b/ui/lib/session.svelte.js
@@ -94,16 +94,20 @@ class Session {
}
async function bootOrNavigate(navigateTo) {
- const response = await api.boot();
- switch (response.status) {
- case 401:
- await navigateTo('/login');
- break;
- case 503:
- await navigateTo('/setup');
- break;
- case 200:
- return response.data;
+ try {
+ const response = await api.retry(async () => await api.boot());
+ return response.data;
+ } catch (err) {
+ switch (true) {
+ case err instanceof api.LoggedOut:
+ await navigateTo('/login');
+ break;
+ case err instanceof api.SetupRequired:
+ await navigateTo('/setup');
+ break;
+ default:
+ throw err;
+ }
}
}