From 1cdbd9e0f71123636abec9d97244e004512f105b Mon Sep 17 00:00:00 2001 From: Kosztyk <36381705+Kosztyk@users.noreply.github.com> Date: Thu, 4 Dec 2025 22:07:58 +0200 Subject: [PATCH] Add files via upload --- src/pages/root.tsx | 7 +------ src/pages/user.tsx | 16 ++++++++++------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/pages/root.tsx b/src/pages/root.tsx index 490dae9..01d66e4 100644 --- a/src/pages/root.tsx +++ b/src/pages/root.tsx @@ -5,7 +5,6 @@ import { BaseHtml } from "../components/base"; import { Header } from "../components/header"; import { getAllTargets } from "../converters/main"; import db from "../db/db"; -import { User } from "../db/types"; import { ACCOUNT_REGISTRATION, ALLOW_UNAUTHENTICATED, @@ -76,7 +75,7 @@ export const root = new Elysia().use(userService).get( (Number.parseInt(user.id) < 2 ** 24 || !ALLOW_UNAUTHENTICATED) ) { // Make sure user exists in db - const existingUser = db.query("SELECT * FROM users WHERE id = ?").as(User).get(user.id); + const existingUser = db.query("SELECT * FROM users WHERE id = ?").get(user.id); if (!existingUser) { if (auth?.value) { @@ -115,10 +114,6 @@ export const root = new Elysia().use(userService).get( const converters = await getAllTargets(); - const storedJobs = db.query( - "SELECT jobs.*, users.email FROM jobs INNER JOIN users ON jobs.user_id = users.id ORDER BY jobs.date_created DESC", - ).all() as (User & { date_created: string; num_files: number; status: string })[]; - return ( <> diff --git a/src/pages/user.tsx b/src/pages/user.tsx index 81dda6e..a466964 100644 --- a/src/pages/user.tsx +++ b/src/pages/user.tsx @@ -1018,12 +1018,16 @@ export const user = new Elysia() } } - // delete this user's jobs and files (to avoid FK issues) - db.query( - "DELETE FROM file_names WHERE job_id IN (SELECT id FROM jobs WHERE user_id = ?)", - ).run(targetId); - db.query("DELETE FROM jobs WHERE user_id = ?").run(targetId); - db.query("DELETE FROM users WHERE id = ?").run(targetId); + // delete this user's jobs and files (to avoid FK issues) in a single transaction + const deleteUserTx = db.transaction((id: number) => { + db.query( + "DELETE FROM file_names WHERE job_id IN (SELECT id FROM jobs WHERE user_id = ?)", + ).run(id); + db.query("DELETE FROM jobs WHERE user_id = ?").run(id); + db.query("DELETE FROM users WHERE id = ?").run(id); + }); + + deleteUserTx(targetId); return redirect(`${WEBROOT}/account`, 302); },