diff --git a/src/lib/server/vorgangService.ts b/src/lib/server/vorgangService.ts index 09887a6..acbd7c8 100644 --- a/src/lib/server/vorgangService.ts +++ b/src/lib/server/vorgangService.ts @@ -47,6 +47,19 @@ export const getVorgangByName = function (caseName: string) { return res; }; +/** + * Delete Vorgang + * @param caseName + * @returns int: number of changes + */ +export const deleteVorgangByName = function (caseName: string) { + let delete_stmt = 'DELETE FROM cases WHERE name = ?'; + const stmt = db.prepare(delete_stmt); + const info = stmt.run(caseName); + + return info.changes; +}; + /** * Fetches list of vorgänge from s3 bucket * @returns list of available cases diff --git a/src/routes/api/list/[vorgang]/+server.ts b/src/routes/api/list/[vorgang]/+server.ts index 345b390..f10a1e6 100644 --- a/src/routes/api/list/[vorgang]/+server.ts +++ b/src/routes/api/list/[vorgang]/+server.ts @@ -1,12 +1,21 @@ import { client } from '$lib/minio'; -import { vorgangNameExists } from '$lib/server/vorgangService'; +import { db } from '$lib/server/dbService'; +import { + deleteVorgangByName, + getVorgang, + getVorgangByName, + vorgangNameExists +} from '$lib/server/vorgangService'; export async function DELETE({ params }) { const vorgang = params.vorgang; + const vorg = getVorgangByName(vorgang); + let vorg_token = vorg.token; + const object_list = await new Promise((resolve, reject) => { const res = []; - const items_str = client.listObjects('tatort', vorgang, true); + const items_str = client.listObjects('tatort', vorg_token, true); items_str.on('data', (obj) => { res.push(obj.name); @@ -20,6 +29,7 @@ export async function DELETE({ params }) { }); await client.removeObjects('tatort', object_list); + deleteVorgangByName(vorgang); return new Response(null, { status: 204 }); }