added backend-mgmt for dataset/dataset_entry and utterances, this includes upload and also displaying of the dataset on the admin pages
This commit is contained in:
34
src/app/actions/remove-dataset-entries.ts
Normal file
34
src/app/actions/remove-dataset-entries.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
'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'
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user