From 654cc641e2291f3db7ce6d7ea493a1b20f8133a6 Mon Sep 17 00:00:00 2001 From: alma Date: Tue, 15 Apr 2025 12:23:58 +0200 Subject: [PATCH] news widget fix db 4 --- app/api/news/route.ts | 66 ++++++++++++------------------------------- 1 file changed, 18 insertions(+), 48 deletions(-) diff --git a/app/api/news/route.ts b/app/api/news/route.ts index 2c07241..fbad39b 100644 --- a/app/api/news/route.ts +++ b/app/api/news/route.ts @@ -1,39 +1,7 @@ import { NextResponse } from 'next/server'; -import { Pool } from 'pg'; -// Log database configuration for debugging -console.log('Database configuration:', { - host: process.env.DB_HOST, - port: process.env.DB_PORT, - database: process.env.DB_NAME, - user: process.env.DB_USER, - // Don't log the actual password - hasPassword: !!process.env.DB_PASSWORD -}); - -// PostgreSQL connection configuration using environment variables -const pool = new Pool({ - host: process.env.DB_HOST, - port: parseInt(process.env.DB_PORT || '5432'), - database: process.env.DB_NAME, - user: process.env.DB_USER, - password: process.env.DB_PASSWORD, - connectionTimeoutMillis: 5000, - query_timeout: 5000, - ssl: false -}); - -// Helper function to clean HTML content -function cleanHtmlContent(content: string): string { - if (!content) return ''; - return content - .replace(/<[^>]*>/g, '') - .replace(/ /g, ' ') - .replace(/&/g, '&') - .replace(/"/g, '"') - .replace(/'/g, "'") - .trim(); -} +// FastAPI server configuration +const API_URL = 'http://172.16.0.104:8000'; // Helper function to format time function formatDateTime(dateStr: string): { displayDate: string, timestamp: string } { @@ -91,16 +59,23 @@ function formatSource(source: string): string { } export async function GET() { - let client; try { - client = await pool.connect(); - console.log('Connected to PostgreSQL database'); + console.log('Fetching news from FastAPI server...'); + + const response = await fetch(`${API_URL}/news?limit=10`, { + method: 'GET', + headers: { + 'Accept': 'application/json', + } + }); - const result = await client.query( - 'SELECT * FROM news ORDER BY date DESC LIMIT 10' - ); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } - const formattedNews = result.rows.map((article: any) => { + const articles = await response.json(); + + const formattedNews = articles.map((article: any) => { const { displayDate, timestamp } = formatDateTime(article.date); return { id: article.id, @@ -118,10 +93,9 @@ export async function GET() { return NextResponse.json(formattedNews); } catch (error) { - console.error('Database error:', { + console.error('API error:', { error: error instanceof Error ? error.message : 'Unknown error', - host: process.env.DB_HOST, - database: process.env.DB_NAME + server: API_URL }); return NextResponse.json( @@ -131,9 +105,5 @@ export async function GET() { }, { status: 500 } ); - } finally { - if (client) { - client.release(); - } } } \ No newline at end of file