Files
veridian/server/api/chat/generations/[id].get.ts
T

43 lines
1.1 KiB
TypeScript

import { protectRoute } from '~~/server/utils/auth';
import { getGenerationStatus } from '~~/server/utils/generation';
import type { GenerationStatusResponse } from '~~/server/types/chat';
export default defineEventHandler(async (event) => {
await protectRoute(event);
const generationId = getRouterParam(event, 'id');
if (!generationId) {
throw createError({
statusCode: 400,
statusMessage: 'Missing generation ID'
});
}
const generation = await getGenerationStatus(generationId);
if (!generation) {
throw createError({
statusCode: 404,
statusMessage: 'Generation not found'
});
}
// Verify ownership
if (generation.userId !== event.context.user.id) {
throw createError({
statusCode: 403,
statusMessage: 'Unauthorized'
});
}
const status: GenerationStatusResponse = {
generationId,
status: generation.status as any,
topicId: generation.topicId,
content: generation.content,
error: generation.error || undefined
};
return status;
});