Files
BA_TTS_Annotation_Plattform/src/app/actions/remove-dataset-entries.ts

35 lines
1.0 KiB
TypeScript

'use server';
import db from '@/lib/db';
import { dataset_entry } from '@/lib/model/dataset_entry';
import { eq } from 'drizzle-orm';
import { revalidatePath } from 'next/cache';
import { rm } from 'fs/promises';
import { join } from 'path';
import { existsSync } from 'fs';
export async function removeAllDatasetEntries(datasetId: number) {
try {
// Delete all entries from database
await db.delete(dataset_entry).where(eq(dataset_entry.datasetId, datasetId));
// Delete dataset files from public folder
const datasetDir = join(process.cwd(), 'public', 'datasets', datasetId.toString());
if (existsSync(datasetDir)) {
await rm(datasetDir, { recursive: true, force: true });
}
revalidatePath(`/admin/datasets/${datasetId}`);
return {
success: true,
message: 'All dataset entries have been removed',
};
} catch (error) {
console.error('Error removing dataset entries:', error);
throw new Error(
error instanceof Error ? error.message : 'Failed to remove dataset entries'
);
}
}