Files
BA_TTS_Annotation_Plattform/src/app/actions/datasets.ts

47 lines
1.2 KiB
TypeScript

'use server';
import db from '@/lib/db';
import { dataset } from '@/lib/model/dataset';
import { eq } from 'drizzle-orm';
import { revalidatePath } from 'next/cache';
export async function createDataset({ name }: { name: string }) {
if (!name || !name.trim()) {
throw new Error('Dataset name is required');
}
try {
const result = await db.insert(dataset).values({ name: name.trim() });
revalidatePath('/admin');
return result;
} catch (error) {
console.error('Error creating dataset:', error);
throw new Error('Failed to create dataset');
}
}
export async function updateDataset(
id: number,
updates: { name?: string }
) {
if (updates.name !== undefined && !updates.name.trim()) {
throw new Error('Dataset name cannot be empty');
}
try {
const result = await db
.update(dataset)
.set({
name: updates.name?.trim(),
updatedAt: new Date(),
})
.where(eq(dataset.id, id));
revalidatePath(`/admin/datasets/${id}`);
revalidatePath('/admin');
return result;
} catch (error) {
console.error('Error updating dataset:', error);
throw new Error('Failed to update dataset');
}
}