From 5eb20895640b6a7041b89988cf3b2c47c7e47f85 Mon Sep 17 00:00:00 2001 From: Dilan Gilluly Date: Mon, 22 Sep 2025 17:06:16 -0400 Subject: [PATCH] nightly - 2025-09-21 --- webapp/src/routes/api/prefixes/+server.js | 33 +++++ webapp/src/routes/api/prefixes/+server.svelte | 0 .../src/routes/api/prefixes/[name]/+server.js | 23 ++++ webapp/src/routes/prefixes/+page.svelte | 124 ++++++++++++++++++ 4 files changed, 180 insertions(+) create mode 100644 webapp/src/routes/api/prefixes/+server.js delete mode 100644 webapp/src/routes/api/prefixes/+server.svelte create mode 100644 webapp/src/routes/api/prefixes/[name]/+server.js create mode 100644 webapp/src/routes/prefixes/+page.svelte diff --git a/webapp/src/routes/api/prefixes/+server.js b/webapp/src/routes/api/prefixes/+server.js new file mode 100644 index 0000000..abba53d --- /dev/null +++ b/webapp/src/routes/api/prefixes/+server.js @@ -0,0 +1,33 @@ +import { db } from "$lib/server/db"; +import { prefixes } from "$lib/server/db/schema"; +import { env } from "$env/dynamic/private"; + +export async function GET() { + if (env.TAM3_REMOTE) { + const res = await fetch(`${env.TAM3_REMOTE}/api/prefixes/?api_key=${env.TAM3_REMOTE_KEY}`); + if (!res.ok) { + return new Response(JSON.stringify({status: "Issue getting prefixes from remote."}), {status: res.status, statusText: res.statusText}); + } + const data = await res.json(); + return new Response(JSON.stringify(data), {status: 200, statusText: "Prefixes fetched from remote successfully."}); + } else { + const data = await db.select().from(prefixes); + return new Response(JSON.stringify(data), {status: 200, statusText: "Prefixes loaded successfully."}); + } +} + +export async function POST({ request }) { + const { name, color, weight } = await request.json(); + console.log({name, color, weight}) + await db.insert(prefixes).values({name: name, color: color, weight: weight}).onConflictDoUpdate({target: prefixes.name, set: {color: color, weight: weight}}); + if (env.TAM3_REMOTE) { + const res = await fetch(`${env.TAM3_REMOTE}/api/prefixes/?api_key=${env.TAM3_REMOTE_KEY}`, { + body: JSON.stringify({name, color, weight}), method: 'POST', headers: {'Content-Type': 'application/json'} + }); + if (!res.ok) { + return new Response(JSON.stringify({status: "Issue posting prefixes"}), {status: res.status, statusText: res.statusText}); + } + const data = await res.json(); + } + return new Response(JSON.stringify({status: "Prefix posted successfully."}), {status: 200, statusText: "Prefix posted successfully."}) +} \ No newline at end of file diff --git a/webapp/src/routes/api/prefixes/+server.svelte b/webapp/src/routes/api/prefixes/+server.svelte deleted file mode 100644 index e69de29..0000000 diff --git a/webapp/src/routes/api/prefixes/[name]/+server.js b/webapp/src/routes/api/prefixes/[name]/+server.js new file mode 100644 index 0000000..c7971bb --- /dev/null +++ b/webapp/src/routes/api/prefixes/[name]/+server.js @@ -0,0 +1,23 @@ +import { db } from "$lib/server/db"; +import { eq } from "drizzle-orm"; +import { prefixes } from "$lib/server/db/schema"; +import { env } from "$env/dynamic/private"; + +export async function GET({ params }) { + let { name } = params; + if (env.TAM3_REMOTE) { + const res = await fetch(`${env.TAM3_REMOTE}/prefixes/${name}/?api_key=${env.TAM3_REMOTE_KEY}`); + if (!res.ok) { + return new Response(JSON.stringify({status: "Issue getting prefix."}), {status: res.status, statusText: res.statusText}); + } + const data = await res.json(); + return new Response(JSON.stringify(data), {status: 200, statusText: "Prefix fetched from remote successfully."}) + } else { + const data = await db.select().from(prefixes).where(eq(prefixes.name, name)); + if (data[0]) { + return new Response(JSON.stringify(data[0]), {status: 200, statusText: "Prefix loaded successfully."}) + } else { + return new Response(JSON.stringify({status: "Issue loading prefix"}), {status: 404, statusText: "Prefix not found."}) + } + } +} \ No newline at end of file diff --git a/webapp/src/routes/prefixes/+page.svelte b/webapp/src/routes/prefixes/+page.svelte new file mode 100644 index 0000000..34a7db5 --- /dev/null +++ b/webapp/src/routes/prefixes/+page.svelte @@ -0,0 +1,124 @@ + + +

Prefix Editor

+
+
+
Name
+
+
+
+
Color
+
+
+
+
Weight
+
+
+
+
Commands
+
+ + +
+
+
+
+
+
Name
+
Color
+
Weight
+
Commands
+
+ {#each all_prefixes as prefix} +
+
{prefix.name}
+
{prefix.color}
+
{prefix.weight}
+
+ + +
+
+ {/each} +
+
+ {status} +
+ + \ No newline at end of file