import { adaptReviewSubmission } from "@/lib/adapters/reviews"; import { backendRequest } from "@/lib/http/backend-client"; import { jsonSuccess, parseJsonBody, parsePositiveIntegerParam, withErrorHandling, } from "@/lib/http/response"; import type { SubmitReviewResponseDto } from "@/lib/types/backend"; import { parseReviewActionPayload } from "@/lib/validation/review-action"; type RouteContext = { params: Promise<{ orderId: string; }>; }; export async function POST(request: Request, context: RouteContext) { return withErrorHandling(async () => { const { orderId: rawOrderId } = await context.params; const orderId = parsePositiveIntegerParam(rawOrderId, "orderId"); const rawPayload = await parseJsonBody(request); const payload = parseReviewActionPayload(rawPayload); const response = await backendRequest( `/reviews/${orderId}/submit`, { method: "POST", body: JSON.stringify(payload), }, ); return jsonSuccess(adaptReviewSubmission(response.data), { mode: "proxy", }); }); }