// app/api/apks/route.ts import { NextResponse } from 'next/server'; import { getApks } from '@/lib/fs-utils'; import { parseApkFilename } from '@/lib/apk-parser'; export async function GET(request: Request) { const { searchParams } = new URL(request.url); const project = searchParams.get('project'); const version = searchParams.get('version'); const commitId = searchParams.get('commit') || undefined; if (!project || !version) { return NextResponse.json( { error: 'Project and version parameters are required' }, { status: 400 } ); } try { const apks = await getApks(project, version, commitId); const apksWithMetadata = apks.map(apk => { const parsed = parseApkFilename(apk.name); return { name: apk.name, size: apk.size, environment: parsed.environment, commit: parsed.commit, modifiedAt: apk.modifiedAt.toISOString(), downloadUrl: `/api/download?project=${encodeURIComponent(project)}&version=${encodeURIComponent(version)}&filename=${encodeURIComponent(apk.name)}`, }; }); return NextResponse.json(apksWithMetadata); } catch (error) { return NextResponse.json( { error: 'Failed to fetch APK files' }, { status: 500 } ); } }