吳元皓 bf357f1c84 feat: add AI chat and summarize endpoints with database integration
- Implemented a new chat endpoint that utilizes Groq for chat completions based on news articles.
- Added a summarize endpoint that fetches news articles from the database and generates summaries using Groq.
- Introduced a new package "@vueuse/core" for improved reactivity.
- Created a comprehensive command UI component with various subcomponents for better user interaction.
- Developed a scraping module using Scrapy to fetch news articles from Google News.
- Added validation and sanitization for slug parameters in the fetch article endpoint.
2025-05-10 21:57:38 +08:00

28 lines
781 B
TypeScript

import sql from "~/server/components/postgres";
export default defineEventHandler(async (event) => {
const slug = getRouterParam(event, 'slug');
// Validate and sanitize the slug
if (!slug || typeof slug !== 'string') {
throw createError({
statusCode: 400,
message: 'Invalid slug parameter'
});
}
const cleanSlug = slug.replace(/[^a-zA-Z0-9-_]/g, '');
try {
const result = await sql`
select * from articles
where slug = ${cleanSlug}
`
return result.rows[0] || null;
} catch (error) {
console.error('Database error:', error);
throw createError({
statusCode: 500,
message: 'Internal server error'
});
}
});