aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web-shared/src/lib/session.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web-shared/src/lib/session.ts')
-rw-r--r--apps/web-shared/src/lib/session.ts68
1 files changed, 0 insertions, 68 deletions
diff --git a/apps/web-shared/src/lib/session.ts b/apps/web-shared/src/lib/session.ts
deleted file mode 100644
index f729687..0000000
--- a/apps/web-shared/src/lib/session.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import {Temporal} from "@js-temporal/polyfill";
-import {get_profile_for_active_check, logout} from "./api/user";
-import {is_guid, session_storage_get_json, session_storage_set_json} from "./helpers";
-import {SECONDS_BETWEEN_SESSION_CHECK, StorageKeys} from "./configuration";
-import type {ISession} from "$shared/lib/models/ISession";
-
-export async function is_active(forceRefresh: boolean = false): Promise<boolean> {
- const nowEpoch = Temporal.Now.instant().epochSeconds;
- const data = session_storage_get_json(StorageKeys.session) as ISession;
- const expiryEpoch = data?.lastChecked + SECONDS_BETWEEN_SESSION_CHECK;
- const lastCheckIsStaleOrNone = !is_guid(data?.profile?.id) || (expiryEpoch < nowEpoch);
- if (forceRefresh || lastCheckIsStaleOrNone) {
- return await call_api();
- } else {
- const sessionIsValid = data.profile && is_guid(data.profile.id);
- if (!sessionIsValid) {
- clear_session_data();
- console.log("Session data is not valid");
- }
- return sessionIsValid;
- }
-}
-
-export async function end_session(cb: Function): Promise<void> {
- await logout();
- clear_session_data();
- cb();
-}
-
-async function call_api(): Promise<boolean> {
- console.log("Getting profile data while checking session state");
- try {
- const response = await get_profile_for_active_check();
- if (response.ok) {
- const userData = await response.data;
- if (is_guid(userData.id) && userData.username) {
- const session = {
- profile: userData,
- lastChecked: Temporal.Now.instant().epochSeconds
- } as ISession;
- session_storage_set_json(StorageKeys.session, session);
- console.log("Successfully got profile data while checking session state");
- return true;
- } else {
- console.error("Api returned invalid data while getting profile data");
- clear_session_data();
- return false;
- }
- } else {
- console.error("Api returned unsuccessfully while getting profile data");
- clear_session_data();
- return false;
- }
- } catch (e) {
- console.error(e);
- clear_session_data();
- return false;
- }
-}
-
-export function clear_session_data() {
- session_storage_set_json(StorageKeys.session, {});
- console.log("Cleared session data.");
-}
-
-export function get_session_data(): ISession {
- return session_storage_get_json(StorageKeys.session) as ISession;
-}