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:
averel10
2026-03-05 11:31:06 +01:00
parent 28c45bc133
commit c08dc46305
33 changed files with 5609 additions and 37 deletions

View 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'
);
}
}