import { backendRequest } from "@/lib/http/backend-client"; import { jsonSuccess, parseJsonBody, withErrorHandling, } from "@/lib/http/response"; import { parseLibraryUploadPresignPayload } from "@/lib/validation/library-resource"; type PresignUploadResponseDto = { method: string; upload_url: string; headers: Record; storage_key: string; public_url: string; }; export async function POST(request: Request) { return withErrorHandling(async () => { const rawPayload = await parseJsonBody(request); const payload = parseLibraryUploadPresignPayload(rawPayload); const response = await backendRequest( "/library/uploads/presign", { method: "POST", body: JSON.stringify(payload), }, ); return jsonSuccess({ method: response.data.method, uploadUrl: response.data.upload_url, headers: response.data.headers, storageKey: response.data.storage_key, publicUrl: response.data.public_url, }); }); }