From 120886675711348e23f07c2f0e360d441483a913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B3=E5=85=83=E7=9A=93?= Date: Sat, 10 May 2025 06:55:28 +0800 Subject: [PATCH] feat: implement go_links table and update database connection handling --- createDatabase.ts | 15 +++++++++++++-- pages/admin/login.vue | 12 ------------ server/components/postgres.ts | 7 +++++++ server/routes/go/[slug].ts | 24 ++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 14 deletions(-) delete mode 100644 pages/admin/login.vue create mode 100644 server/components/postgres.ts diff --git a/createDatabase.ts b/createDatabase.ts index 72ac2d8..03e9acc 100644 --- a/createDatabase.ts +++ b/createDatabase.ts @@ -1,4 +1,4 @@ -import { sql } from "bun"; +import sql from "~/server/components/postgres"; const createUsers = await sql` create table if not exists users ( @@ -42,6 +42,17 @@ create table if not exists newsProvidersZh ( ) `; + +const createGoLinks = await sql` +create table if not exists go_links { + uuid text primary key, + title text, + slug text unique not null, + forwardUrl text not null, + created_at timestampz default current_timestamp +} +` +/* const createAdminPosts = await sql` create table if not exists adminPosts ( uuid text primary key, @@ -59,6 +70,6 @@ create table if not exists adminUsers ( created_at timestampz default current_timestamp, lastlogged_at timestampz default current_timestamp, ) -`; +`;*/ console.log("Creation Complete"); diff --git a/pages/admin/login.vue b/pages/admin/login.vue deleted file mode 100644 index f0677a7..0000000 --- a/pages/admin/login.vue +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/server/components/postgres.ts b/server/components/postgres.ts new file mode 100644 index 0000000..de922b2 --- /dev/null +++ b/server/components/postgres.ts @@ -0,0 +1,7 @@ +import { SQL } from "bun"; + +const postgres = new SQL({ + url: process.env.POSTGRES_URL, +}) + +export default postgres; \ No newline at end of file diff --git a/server/routes/go/[slug].ts b/server/routes/go/[slug].ts index e69de29..7526b28 100644 --- a/server/routes/go/[slug].ts +++ b/server/routes/go/[slug].ts @@ -0,0 +1,24 @@ +import sql from "~/server/components/postgres"; +export default defineEventHandler(async (event) => { + const slug = getRouterParam(event, 'slug'); + if (!slug || typeof slug !== 'string') { + throw createError({ + statusCode: 400, + message: 'Invalid slug parameter' + }); + } + const cleanSlug = slug.replace(/[^a-zA-Z0-9-_]/g, ''); + try { + const result = await sql` + select * from go_links + where slug = ${cleanSlug} + ` + return result.rows[0] || null; + } catch (error) { + console.error('Database error:', error); + throw createError({ + statusCode: 500, + message: 'Internal server error' + }); + } +}) \ No newline at end of file