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