aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Database
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-01-03 05:36:06 -0800
committerFuwn <[email protected]>2024-01-03 05:36:06 -0800
commit076299e85b4e63acb7fdf32f12770dc04b88652e (patch)
treefeef3a510083212224ebc3c1db3eb79116311ebd /src/lib/Database
parentdeps(bun): update for 0.1.15 (diff)
downloaddue.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.ts87
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};`;
};