← back to Letsbegin
app/api/tracking/route.ts
39 lines
import { NextRequest, NextResponse } from 'next/server'
import { trackEvent, getTrackingEvents, getProjectStats } from '@/lib/sheets'
export async function POST(request: NextRequest) {
try {
const event = await request.json()
const success = await trackEvent({
...event,
timestamp: new Date().toISOString()
})
return NextResponse.json({ success })
} catch (error) {
console.error('Failed to track event:', error)
return NextResponse.json({ error: 'Failed to track event' }, { status: 500 })
}
}
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url)
const project = searchParams.get('project')
const limit = parseInt(searchParams.get('limit') || '50')
const stats = searchParams.get('stats') === 'true'
if (stats && project) {
const projectStats = await getProjectStats(project)
return NextResponse.json(projectStats)
}
const events = await getTrackingEvents(project || undefined, limit)
return NextResponse.json({ events })
} catch (error) {
console.error('Failed to get tracking events:', error)
return NextResponse.json({ error: 'Failed to get events' }, { status: 500 })
}
}