From 4d1175bb3343f7fe5ad93ea55d7232bb4e648154 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 24 Dec 2023 02:59:22 -0800 Subject: refactor(database): move badges into module --- src/lib/Database/badges.ts | 51 ++++++++++++++++++++++++++++++ src/lib/userBadgesDatabase.ts | 51 ------------------------------ src/lib/websocket.ts | 2 +- src/routes/api/badges/+server.ts | 6 ++-- src/routes/user/[user]/badges/+page.svelte | 2 +- 5 files changed, 56 insertions(+), 56 deletions(-) create mode 100644 src/lib/Database/badges.ts delete mode 100644 src/lib/userBadgesDatabase.ts (limited to 'src') diff --git a/src/lib/Database/badges.ts b/src/lib/Database/badges.ts new file mode 100644 index 00000000..e02fd91b --- /dev/null +++ b/src/lib/Database/badges.ts @@ -0,0 +1,51 @@ +import { Database } from 'bun:sqlite'; + +export interface Badge { + post?: string; + image?: string; + description?: string; + id?: number; +} + +const database = new Database('./data/due_moe.sqlite3', { + create: true +}); + +database + .query( + `CREATE TABLE IF NOT EXISTS user_badges ( + id INTEGER PRIMARY KEY, + user_id INTEGER NOT NULL, + post TEXT(1000) NOT NULL, + image TEXT(1000) NOT NULL, + description TEXT(1000) DEFAULT NULL, + time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +)` + ) + .run(); + +export const getUserBadges = (userId: number): Badge[] => { + return database + .query('SELECT * FROM user_badges WHERE user_id = $userId') + .all({ $userId: String(userId) }) as Badge[]; +}; + +export const addUserBadge = (userId: number, badge: Badge) => { + const { post, image, description } = badge; + + if (post === undefined || image === undefined) return; + + const statement = database.query( + `INSERT INTO user_badges (user_id, post, image, description) VALUES (?1, ?2, ?3, ?4);` + ); + + statement.run(userId.toString(), post, image, description || null); +}; + +export const removeUserBadge = (userId: number, id: number) => { + if (!isNaN(id)) + database.query('DELETE FROM user_badges WHERE user_id = $userId AND id = $id').run({ + $userId: userId, + $id: id + }); +}; diff --git a/src/lib/userBadgesDatabase.ts b/src/lib/userBadgesDatabase.ts deleted file mode 100644 index e02fd91b..00000000 --- a/src/lib/userBadgesDatabase.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Database } from 'bun:sqlite'; - -export interface Badge { - post?: string; - image?: string; - description?: string; - id?: number; -} - -const database = new Database('./data/due_moe.sqlite3', { - create: true -}); - -database - .query( - `CREATE TABLE IF NOT EXISTS user_badges ( - id INTEGER PRIMARY KEY, - user_id INTEGER NOT NULL, - post TEXT(1000) NOT NULL, - image TEXT(1000) NOT NULL, - description TEXT(1000) DEFAULT NULL, - time TIMESTAMP DEFAULT CURRENT_TIMESTAMP -)` - ) - .run(); - -export const getUserBadges = (userId: number): Badge[] => { - return database - .query('SELECT * FROM user_badges WHERE user_id = $userId') - .all({ $userId: String(userId) }) as Badge[]; -}; - -export const addUserBadge = (userId: number, badge: Badge) => { - const { post, image, description } = badge; - - if (post === undefined || image === undefined) return; - - const statement = database.query( - `INSERT INTO user_badges (user_id, post, image, description) VALUES (?1, ?2, ?3, ?4);` - ); - - statement.run(userId.toString(), post, image, description || null); -}; - -export const removeUserBadge = (userId: number, id: number) => { - if (!isNaN(id)) - database.query('DELETE FROM user_badges WHERE user_id = $userId AND id = $id').run({ - $userId: userId, - $id: id - }); -}; diff --git a/src/lib/websocket.ts b/src/lib/websocket.ts index f78d3903..fe689884 100644 --- a/src/lib/websocket.ts +++ b/src/lib/websocket.ts @@ -1,6 +1,6 @@ import type { ViteDevServer } from 'vite'; import { Server } from 'socket.io'; -import { getUserBadges } from '$lib/userBadgesDatabase'; +import { getUserBadges } from '$lib/Database/badges'; import { userIdentity } from '$lib/AniList/identity'; export const webSocketServer = { diff --git a/src/routes/api/badges/+server.ts b/src/routes/api/badges/+server.ts index c8a52bcf..0fcbb932 100644 --- a/src/routes/api/badges/+server.ts +++ b/src/routes/api/badges/+server.ts @@ -1,7 +1,7 @@ import { userIdentity } from '$lib/AniList/identity.js'; -import { removeUserBadge } from '$lib/userBadgesDatabase.js'; -import { getUserBadges } from '$lib/userBadgesDatabase'; -import { addUserBadge } from '$lib/userBadgesDatabase.js'; +import { removeUserBadge } from '$lib/Database/badges'; +import { getUserBadges } from '$lib/Database/badges'; +import { addUserBadge } from '$lib/Database/badges'; export const GET = async ({ url }) => { return Response.json(getUserBadges(Number(url.searchParams.get('id') || 0))); diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index b7a09ca8..b46882c8 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -2,7 +2,7 @@ import { userIdentity } from '$lib/AniList/identity.js'; import { user } from '$lib/AniList/user.js'; import { nbsp } from '$lib/Tools/tool'; - import type { Badge } from '$lib/userBadgesDatabase.js'; + import type { Badge } from '$lib/Database/badges'; import { domToBlob } from 'modern-screenshot'; import { onMount } from 'svelte'; // import { io } from 'socket.io-client'; -- cgit v1.2.3