diff options
| author | Fuwn <[email protected]> | 2024-01-03 05:36:06 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-01-03 05:36:06 -0800 |
| commit | 076299e85b4e63acb7fdf32f12770dc04b88652e (patch) | |
| tree | feef3a510083212224ebc3c1db3eb79116311ebd /src/lib/Database | |
| parent | deps(bun): update for 0.1.15 (diff) | |
| download | due.moe-076299e85b4e63acb7fdf32f12770dc04b88652e.tar.xz due.moe-076299e85b4e63acb7fdf32f12770dc04b88652e.zip | |
ci: move to vercel
Diffstat (limited to 'src/lib/Database')
| -rw-r--r-- | src/lib/Database/badges.ts | 87 |
1 files changed, 28 insertions, 59 deletions
diff --git a/src/lib/Database/badges.ts b/src/lib/Database/badges.ts index 9819e10e..aaf08d8f 100644 --- a/src/lib/Database/badges.ts +++ b/src/lib/Database/badges.ts @@ -1,5 +1,5 @@ import { databaseTimeToDate } from '$lib/Utility/time'; -import { Database } from 'bun:sqlite'; +import { sql } from '@vercel/postgres'; export interface Badge { post?: string; @@ -10,78 +10,47 @@ export interface Badge { category?: string; } -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, - category 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) }) - .sort((a, b) => - databaseTimeToDate((a as Badge).time ?? '').getTime() > - databaseTimeToDate((b as Badge).time ?? '').getTime() - ? -1 - : 1 - ) as Badge[]; +export const getUserBadges = async (userId: number): Promise<Badge[]> => { + return (await sql`SELECT * FROM user_badges WHERE user_id = ${userId};`).rows.sort((a, b) => + databaseTimeToDate((a as Badge).time ?? '').getTime() > + databaseTimeToDate((b as Badge).time ?? '').getTime() + ? -1 + : 1 + ) as Badge[]; }; -export const addUserBadge = (userId: number, badge: Badge) => { +export const addUserBadge = async (userId: number, badge: Badge) => { const { post, image, description, time, category } = badge; if (post === undefined || image === undefined) return; if (time) { - database - .query( - `INSERT INTO user_badges (user_id, post, image, description, time, category) VALUES (?1, ?2, ?3, ?4, ?5, ?6);` - ) - .run(userId.toString(), post, image, description || null, time, category || null); + ( + await sql`INSERT INTO user_badges (user_id, post, image, description, time, category) VALUES (${userId}, ${post}, ${image}, ${ + description || null + }, ${time}, ${category || null});` + ).rows; } else { - database - .query( - `INSERT INTO user_badges (user_id, post, image, description, category) VALUES (?1, ?2, ?3, ?4, ?5);` - ) - .run(userId.toString(), post, image, description || null, category || null); + ( + await sql`INSERT INTO user_badges (user_id, post, image, description, category) VALUES (${userId}, ${post}, ${image}, ${ + description || null + }, ${category || null});` + ).rows; } }; -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 - }); +export const removeUserBadge = async (userId: number, id: number) => { + if (!isNaN(id)) await sql`DELETE FROM user_badges WHERE user_id = ${userId} AND id = ${id};`; }; -export const updateUserBadge = (userId: number, id: number, badge: Badge) => { +export const updateUserBadge = async (userId: number, id: number, badge: Badge) => { if (badge.post === undefined || badge.image === undefined || badge.description === undefined) return; - database - .query( - 'UPDATE user_badges SET post = ?1, image = ?2, description = ?3, category = ?6 WHERE id = ?4 AND user_id = ?5' - ) - .run( - badge.post || null, - badge.image || null, - badge.description || null, - id, - userId, - badge.category || null - ); + await sql` + UPDATE user_badges SET post = ${badge.post || null}, image = ${ + badge.image || null + }, description = ${badge.description || null}, category = ${ + badge.category || null + } WHERE id = ${id} AND user_id = ${userId};`; }; |