implement rename backend PUT function for crime

This commit is contained in:
2025-08-08 10:17:16 +02:00
parent a91d7292c5
commit 45166c0cac

View File

@@ -1,4 +1,6 @@
import { BUCKET, client } from '$lib/minio'; import { BUCKET, client } from '$lib/minio';
import { json, type RequestHandler } from '@sveltejs/kit';
import { getVorgangByName } from '$lib/server/vorgangService';
export async function GET() { export async function GET() {
const stream = client.listObjectsV2(BUCKET, '', true); const stream = client.listObjectsV2(BUCKET, '', true);
@@ -23,7 +25,6 @@ export async function GET() {
}); });
} }
export async function DELETE({ request }: { request: Request }) { export async function DELETE({ request }: { request: Request }) {
const url_fragments = request.url.split('/'); const url_fragments = request.url.split('/');
const item = url_fragments.at(-1); const item = url_fragments.at(-1);
@@ -33,3 +34,39 @@ export async function DELETE({ request }: { request: Request }) {
return new Response(null, { status: 204 }); return new Response(null, { status: 204 });
} }
// rename operation for crimes
export async function PUT({ params, request }: { params: RequestHandler; request: Request }) {
const data = await request.json();
// Vorgang
const vorgangName = params.vorgang;
const vorgangToken = getVorgangByName(vorgangName)?.token;
// prepare copy, incl. check if new name exists already
const crimeOldName = data['oldName'];
const crimeS3FullBucketPathOld = `/tatort/${vorgangToken}/${crimeOldName}`;
const crimeNewName = `${vorgangToken}/${data['newName']}`;
if (!crimeOldName || !crimeNewName) {
return json({ msg: 'Der Name darf nicht leer sein.' }, { status: 400 });
}
try {
await client.statObject('tatort', crimeNewName);
return json({ msg: 'Die Datei existiert bereits.' }, { status: 400 });
} catch (error) {
// continue operation
console.log(error, 'continue operation');
}
// actual copy operation
await client.copyObject('tatort', crimeNewName, crimeS3FullBucketPathOld);
console.log(`+++ weiter geht's`);
// delete
await client.removeObject('tatort', `${vorgangToken}/${crimeOldName}`);
return json({ success: 'success' }, { status: 200 });
}