import { NextRequest, NextResponse } from 'next/server'; import { getVisitTrends, TimeGranularity } from '@/lib/analytics'; export async function GET(request: NextRequest) { try { // 获取请求参数 const { searchParams } = new URL(request.url); const linkId = searchParams.get('linkId'); const startDate = searchParams.get('startDate') || undefined; const endDate = searchParams.get('endDate') || undefined; const granularity = searchParams.get('granularity') as TimeGranularity || TimeGranularity.DAY; // 验证必要参数 if (!linkId) { return NextResponse.json( { error: 'Missing required parameter: linkId' }, { status: 400 } ); } // 验证粒度参数 const validGranularities = Object.values(TimeGranularity); if (granularity && !validGranularities.includes(granularity)) { return NextResponse.json( { error: 'Invalid granularity value', validValues: validGranularities }, { status: 400 } ); } // 获取访问趋势数据 const trendsData = await getVisitTrends( linkId, startDate || undefined, endDate || undefined, granularity ); // 返回数据 return NextResponse.json(trendsData); } catch (error) { console.error('Error in trends API:', error); return NextResponse.json( { error: 'Failed to fetch trends data' }, { status: 500 } ); } }