/** * GET /api/users/me/points - Get user's points balance and transaction history */ import { NextRequest, NextResponse } from 'next/server'; import { requireAuth } from '@/app/lib/auth'; import { getBalance, getTransactions } from '@/app/lib/points'; import { PointsResponse, ApiResponse } from '@/app/lib/types'; export async function GET(request: NextRequest) { try { // Authenticate user const user = requireAuth(request); // Get balance and transactions const balance = getBalance(user.id); const transactions = getTransactions(user.id); const response: PointsResponse = { balance, transactions }; return NextResponse.json>( { success: true, data: response }, { status: 200 } ); } catch (error) { if (error instanceof Error && error.message === 'Unauthorized') { return NextResponse.json( { success: false, error: 'Unauthorized' }, { status: 401 } ); } console.error('Get points error:', error); return NextResponse.json( { success: false, error: 'Internal server error' }, { status: 500 } ); } }