import { generateRandomToken } from '@/lib/auth'; import { getMemberCredentials } from '@/lib/server-auth'; import { comparePassword } from '@/lib/auth'; import { NextRequest, NextResponse } from 'next/server'; export async function POST(request: NextRequest) { try { const body = await request.json(); // Check for admin auth const { password } = body; const members = getMemberCredentials(); const isAuthenticated = members.some(member => comparePassword(password, member.password)); if (!isAuthenticated) { return NextResponse.json( { error: 'Unauthorized' }, { status: 401 } ); } // Generate a new voting token const token = await generateRandomToken(); // Create the voting URL with the token const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || request.nextUrl.origin; const voteUrl = `${baseUrl}/vote?token=${encodeURIComponent(token)}`; return NextResponse.json({ token, voteUrl });; } catch (error) { console.error('Error generating token:', error); return NextResponse.json( { error: 'Failed to generate token' }, { status: 500 } ); } }