← 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 })
  }
}