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

53 lines
1.5 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'
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url)
const type = searchParams.get('type') || 'all'
// 使用簡單的查詢,避免排序緩衝區問題
let wishes
if (type === 'public') {
// 只獲取公開的困擾案例,不排序,避免內存問題
wishes = await prisma.wish.findMany({
where: {
isPublic: true,
status: 'active'
},
take: 100 // 限制數量
})
} else {
// 獲取所有困擾案例,不排序,避免內存問題
wishes = await prisma.wish.findMany({
where: {
status: 'active'
},
take: 100 // 限制數量
})
}
// 轉換數據格式
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 })
} catch (error) {
console.error('API Error:', error)
return NextResponse.json(
{ success: false, error: 'Failed to fetch wishes' },
{ status: 500 }
)
}
}