implement rename backend PUT function for crime
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import { BUCKET, client } from '$lib/minio';
|
||||
import { json, type RequestHandler } from '@sveltejs/kit';
|
||||
import { getVorgangByName } from '$lib/server/vorgangService';
|
||||
|
||||
export async function GET() {
|
||||
const stream = client.listObjectsV2(BUCKET, '', true);
|
||||
@@ -23,7 +25,6 @@ export async function GET() {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
export async function DELETE({ request }: { request: Request }) {
|
||||
const url_fragments = request.url.split('/');
|
||||
const item = url_fragments.at(-1);
|
||||
@@ -33,3 +34,39 @@ export async function DELETE({ request }: { request: Request }) {
|
||||
|
||||
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 });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user