From 873a382f696f7644630c2291feb33a3303334175 Mon Sep 17 00:00:00 2001 From: Chi Cong Tran Date: Mon, 14 Jul 2025 13:54:08 +0200 Subject: [PATCH] =?UTF-8?q?refactor=20'Datei=20zu=20Vorgang=20hinzuf=C3=BC?= =?UTF-8?q?gen':=20Add=20model=20files=20to=20existing=20cases?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/server/vorgangService.ts | 8 ++++++ .../(angemeldet)/upload/+page.server.ts | 25 ++++++++++++++++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/lib/server/vorgangService.ts b/src/lib/server/vorgangService.ts index 95b378e..09887a6 100644 --- a/src/lib/server/vorgangService.ts +++ b/src/lib/server/vorgangService.ts @@ -39,6 +39,14 @@ export const getVorgang = function (caseId: string) { return res; }; +export const getVorgangByName = function (caseName: string) { + let getVorgangByName_stmt = `SELECT token, name, pw FROM cases WHERE name = ?`; + const stmt = db.prepare(getVorgangByName_stmt); + const res = stmt.get(caseName); + + return res; +}; + /** * Fetches list of vorgänge from s3 bucket * @returns list of available cases diff --git a/src/routes/(angemeldet)/upload/+page.server.ts b/src/routes/(angemeldet)/upload/+page.server.ts index 8016dac..934cf75 100644 --- a/src/routes/(angemeldet)/upload/+page.server.ts +++ b/src/routes/(angemeldet)/upload/+page.server.ts @@ -5,6 +5,7 @@ import { fail } from '@sveltejs/kit'; import { v4 as uuidv4 } from 'uuid'; import { db } from '$lib/server/dbService'; +import { getVorgangByName, vorgangExists, vorgangNameExists } from '$lib/server/vorgangService'; const isRequiredFieldValid = (value: unknown) => { if (value == null) return false; @@ -24,11 +25,27 @@ export const actions = { const fileName = data.get('fileName'); // store case in database + // skip if Vorgang exists and token not changed - let token = uuidv4(); - let insert_stmt = `INSERT INTO cases (token, name, pw) VALUES (?, ?, ?)`; - const stmt = db.prepare(insert_stmt); - stmt.run(token, vorgang, code); + const vorgang_exists = vorgangNameExists(vorgang); + let token; + + if (!vorgang_exists) { + token = uuidv4(); + let insert_stmt = `INSERT INTO cases (token, name, pw) VALUES (?, ?, ?)`; + const stmt = db.prepare(insert_stmt); + stmt.run(token, vorgang, code); + } else { + // vorgang exists + // check if PW was changed, and update DB if it was + const vorg = getVorgangByName(vorgang); + token = vorg.token; + if (vorg.pw != code) { + let update_stmt = `UPDATE cases SET pw = ? WHERE name = ?`; + const stmt = db.prepare(update_stmt); + stmt.run(code, vorgang); + } + } let objectName = `${token}/${name}`; switch (type) {