Files
wish-pool/app/api/wishes/working/route.ts
2025-10-07 10:50:20 +08:00

68 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { NextRequest, NextResponse } from 'next/server'
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url)
const type = searchParams.get('type') || 'all'
console.log(`🔍 獲取真實數據: type=${type}`)
// 使用動態導入來避免環境變數問題
const { PrismaClient } = await import('@prisma/client')
// 設定環境變數
process.env.DATABASE_URL = "mysql://wish_pool:Aa123456@mysql.theaken.com:33306/db_wish_pool?schema=public"
const prisma = new PrismaClient()
try {
// 使用簡單的查詢
let wishes
if (type === 'public') {
wishes = await prisma.wish.findMany({
where: {
isPublic: true,
status: 'active'
},
orderBy: { id: 'desc' },
take: 100
})
} else {
wishes = await prisma.wish.findMany({
where: {
status: 'active'
},
orderBy: { id: 'desc' },
take: 100
})
}
console.log(`✅ 成功獲取 ${wishes.length} 筆真實數據`)
// 轉換數據格式
const formattedWishes = wishes.map((wish: any) => ({
...wish,
like_count: 0, // 暫時設為 0避免複雜查詢
created_at: wish.createdAt.toISOString(),
updated_at: wish.updatedAt.toISOString(),
current_pain: wish.currentPain,
expected_solution: wish.expectedSolution,
expected_effect: wish.expectedEffect,
is_public: wish.isPublic
}))
return NextResponse.json({ success: true, data: formattedWishes })
} finally {
await prisma.$disconnect()
}
} catch (error) {
console.error('API Error:', error)
return NextResponse.json(
{ success: false, error: 'Failed to fetch real data' },
{ status: 500 }
)
}
}