Files
veridian/server/api/chat/generate.post.ts
T
2026-01-11 05:04:29 -06:00

33 lines
985 B
TypeScript

import { protectRoute } from '~~/server/utils/auth';
import { registerPendingGeneration } from '~~/server/utils/generation';
import type { GenerateRequestBody } from '~~/server/types/chat';
export default defineEventHandler(async (event) => {
await protectRoute(event);
const body = await readBody(event) as GenerateRequestBody;
const { topicId, messages } = body;
if (!topicId || !messages) {
throw createError({
statusCode: 400,
statusMessage: 'Missing required fields: topicId and messages'
});
}
if (messages.length === 0) {
throw createError({
statusCode: 400,
statusMessage: 'Messages array cannot be empty'
});
}
const generationId = `gen_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
registerPendingGeneration(event.context.user.id, generationId, topicId, messages);
return {
generationId,
status: 'pending'
};
});