diff --git a/frontends/nextjs/src/app/api/packages/data/[packageId]/handlers/get-package-data.ts b/frontends/nextjs/src/app/api/packages/data/[packageId]/handlers/get-package-data.ts new file mode 100644 index 000000000..891b20c78 --- /dev/null +++ b/frontends/nextjs/src/app/api/packages/data/[packageId]/handlers/get-package-data.ts @@ -0,0 +1,25 @@ +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' +import { getPackageData } from '@/lib/db/packages/get-package-data' + +interface RouteParams { + params: { + packageId: string + } +} + +export async function GET(_request: NextRequest, { params }: RouteParams) { + try { + const data = await getPackageData(params.packageId) + return NextResponse.json({ data }) + } catch (error) { + console.error('Error fetching package data:', error) + return NextResponse.json( + { + error: 'Failed to fetch package data', + details: error instanceof Error ? error.message : 'Unknown error', + }, + { status: 500 } + ) + } +} diff --git a/frontends/nextjs/src/app/api/packages/data/[packageId]/handlers/put-package-data.ts b/frontends/nextjs/src/app/api/packages/data/[packageId]/handlers/put-package-data.ts new file mode 100644 index 000000000..6c173e040 --- /dev/null +++ b/frontends/nextjs/src/app/api/packages/data/[packageId]/handlers/put-package-data.ts @@ -0,0 +1,35 @@ +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' +import { readJson } from '@/lib/api/read-json' +import { setPackageData } from '@/lib/db/packages/set-package-data' + +type PackageDataPayload = { + data?: Record +} + +interface RouteParams { + params: { + packageId: string + } +} + +export async function PUT(request: NextRequest, { params }: RouteParams) { + try { + const body = await readJson(request) + if (!body || !body.data || Array.isArray(body.data)) { + return NextResponse.json({ error: 'Package data is required' }, { status: 400 }) + } + + await setPackageData(params.packageId, body.data) + return NextResponse.json({ saved: true }) + } catch (error) { + console.error('Error saving package data:', error) + return NextResponse.json( + { + error: 'Failed to save package data', + details: error instanceof Error ? error.message : 'Unknown error', + }, + { status: 500 } + ) + } +}