From 914c75e0ceeb3e11ddd55e94bb461c26b0db5b7a Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Wed, 7 Dec 2022 11:54:20 +0900 Subject: feat:Small changes --- code/app/src/lib/api/projects/index.ts | 12 ++++++++++++ code/app/src/lib/components/textarea.svelte | 2 +- code/app/src/lib/configuration.ts | 2 +- code/app/src/lib/session.ts | 2 +- code/app/src/routes/(main)/(app)/+layout.svelte | 3 +-- code/app/src/routes/(main)/+layout.server.ts | 5 +++-- 6 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 code/app/src/lib/api/projects/index.ts (limited to 'code/app') diff --git a/code/app/src/lib/api/projects/index.ts b/code/app/src/lib/api/projects/index.ts new file mode 100644 index 0000000..ea49631 --- /dev/null +++ b/code/app/src/lib/api/projects/index.ts @@ -0,0 +1,12 @@ +import { api_base } from "$lib/configuration"; +import { http_post_async } from "../_fetch"; + +export const http_projects = { + create_async(payload: CreateProjectPayload): Promise { + return http_post_async(api_base("projects/create", true), payload); + } +}; + +export type CreateProjectPayload = { + name: "" +} \ No newline at end of file diff --git a/code/app/src/lib/components/textarea.svelte b/code/app/src/lib/components/textarea.svelte index 0f2c665..a3dd06a 100644 --- a/code/app/src/lib/components/textarea.svelte +++ b/code/app/src/lib/components/textarea.svelte @@ -23,7 +23,7 @@ id: id || null, disabled: disabled || null, required: required || null, - }; + } as any; let textareaElement; let scrollHeight = 0; diff --git a/code/app/src/lib/configuration.ts b/code/app/src/lib/configuration.ts index 541be35..8debef6 100644 --- a/code/app/src/lib/configuration.ts +++ b/code/app/src/lib/configuration.ts @@ -4,7 +4,7 @@ export const API_ADDRESS = "https://api." + BASE_DOMAIN; export const DEV_API_ADDRESS = "http://localhost:5000"; export const SECONDS_BETWEEN_SESSION_CHECK = 600; -export function api_base(path: string = ""): string { +export function api_base(path: string = "", useDefaultVersion = false): string { return (is_development() ? DEV_API_ADDRESS : API_ADDRESS) + (path !== "" ? "/" + path : ""); } diff --git a/code/app/src/lib/session.ts b/code/app/src/lib/session.ts index 317bf59..5c29cd6 100644 --- a/code/app/src/lib/session.ts +++ b/code/app/src/lib/session.ts @@ -25,7 +25,7 @@ export async function is_active(forceRefresh: boolean = false): Promise export async function end_session(cb: Function): Promise { await http_account.logout_async(); clear_session_data(); - cb(); + if (typeof cb === "function") cb(); } async function call_api(): Promise { diff --git a/code/app/src/routes/(main)/(app)/+layout.svelte b/code/app/src/routes/(main)/(app)/+layout.svelte index ad8f3ce..a280fa7 100644 --- a/code/app/src/routes/(main)/(app)/+layout.svelte +++ b/code/app/src/routes/(main)/(app)/+layout.svelte @@ -12,7 +12,6 @@ } from "$lib/components/icons"; import { Dialog, Menu, MenuButton, MenuItem, MenuItems, Transition, TransitionChild, TransitionRoot } from "@rgossiaux/svelte-headlessui"; import { DialogPanel } from "@developermuch/dev-svelte-headlessui"; - import type { ISession } from "$lib/models/internal/ISession"; import { Input } from "$lib/components"; import { end_session } from "$lib/session"; import { goto } from "$app/navigation"; @@ -23,7 +22,7 @@ username: "Brukernavn", displayName: "epost@adresse.no", }, - } as ISession; + }; let sidebarOpen = false; let sidebarSearchValue: string | undefined; diff --git a/code/app/src/routes/(main)/+layout.server.ts b/code/app/src/routes/(main)/+layout.server.ts index a4507e1..cd41734 100644 --- a/code/app/src/routes/(main)/+layout.server.ts +++ b/code/app/src/routes/(main)/+layout.server.ts @@ -7,7 +7,7 @@ import type { LayoutServerLoad } from "./$types"; export const load: LayoutServerLoad = async ({ route, cookies, locals }) => { const isBaseRoute = route.id === "/(main)"; const isPublicRoute = (route.id?.startsWith("/(main)/(public)") || isBaseRoute) ?? true; - const sessionIsValid = (await cached_result("sessionCheck", 10, () => fetch(api_base("_/valid-session"), { + const sessionIsValid = (await cached_result("sessionCheck", 120, () => fetch(api_base("_/valid-session"), { headers: { Cookie: CookieNames.session + "=" + cookies.get(CookieNames.session) } @@ -50,7 +50,8 @@ async function cached_result(key: string, staleAfterSeconds: number, code: an resultCache[key].l = Temporal.Now.instant().epochSeconds; } - console.log({ + log_debug("Ran cached_result", { + cacheKey: key, isStale, cache: resultCache[key], staleEpoch -- cgit v1.3