Files
dashlio/server/api/folders/index.post.ts
2026-04-19 18:03:14 +01:00

29 lines
706 B
TypeScript

import { readDb, writeDb, DashboardItem } from '../../utils/yamlDb';
import { randomUUID } from 'crypto';
export default defineEventHandler(async (event) => {
const body = await readBody(event);
if (!body.name) {
throw createError({ statusCode: 400, statusMessage: 'Name is required' });
}
let slug = body.name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)/g, '');
if (!slug) slug = 'folder';
const newFolder: DashboardItem = {
id: randomUUID(),
type: 'folder',
name: body.name,
slug: slug,
parentId: body.parentId || null,
order: body.order || 0
};
const items = readDb();
items.push(newFolder);
writeDb(items);
return newFolder;
});