import { NextRequest, NextResponse } from 'next/server' import { requireAuth } from '@/lib/auth' import { generatePresignedUrl } from '@/lib/upload' export async function GET(request: NextRequest) { try { const user = await requireAuth() const { searchParams } = new URL(request.url) const fileName = searchParams.get('fileName') const mimeType = searchParams.get('mimeType') const expiresIn = parseInt(searchParams.get('expiresIn') || '3600') if (!fileName || !mimeType) { return NextResponse.json( { error: 'fileName and mimeType are required' }, { status: 400 } ) } // Generate presigned URL const { url, key } = await generatePresignedUrl(fileName, mimeType, expiresIn) return NextResponse.json( { presignedUrl: url, key, expiresIn, }, { status: 200 } ) } catch (error) { console.error('Generate presigned URL error:', error) if (error instanceof Error && error.message === 'Unauthorized') { return NextResponse.json( { error: 'Unauthorized' }, { status: 401 } ) } return NextResponse.json( { error: 'Failed to generate presigned URL' }, { status: 500 } ) } }