wulf-pulse/app/api/workflow/templates/route.ts

43 lines
1.4 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server';
import postgresClient from '@/lib/services/postgres-client';
import { AiPromptTemplateInput } from '@/lib/types/workflow';
export async function GET() {
try {
const result = await postgresClient.query(
`SELECT * FROM ai_prompt_templates ORDER BY purpose, version DESC`
);
return NextResponse.json(result.rows);
} catch (error) {
console.error('Failed to fetch templates:', error);
return NextResponse.json({ error: 'Failed to fetch templates' }, { status: 500 });
}
}
export async function POST(request: NextRequest) {
try {
const body: AiPromptTemplateInput = await request.json();
const result = await postgresClient.query(
`INSERT INTO ai_prompt_templates
(name, purpose, system_prompt, user_prompt_template, provider, model, temperature, max_tokens, is_active)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING *`,
[
body.name,
body.purpose,
body.system_prompt,
body.user_prompt_template,
body.provider ?? 'openai',
body.model ?? 'gpt-4o',
body.temperature ?? 0.3,
body.max_tokens ?? 4000,
body.is_active ?? true,
]
);
return NextResponse.json(result.rows[0], { status: 201 });
} catch (error) {
console.error('Failed to create template:', error);
return NextResponse.json({ error: 'Failed to create template' }, { status: 500 });
}
}