implement rename backend PUT function for crime
This commit is contained in:
@@ -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 });
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user