import type { MedusaRequest, MedusaResponse } from "@medusajs/framework"; import { MedusaError } from "@medusajs/framework/utils"; import { PRODUCT_REVIEW_MODULE } from "../../../../modules/product-review"; import type ProductReviewModuleService from "../../../../modules/product-review/service"; const STATUSES = ["pending", "approved", "rejected"] as const; // POST /admin/reviews/:id { status } -- aprobar / rechazar / volver a // pendiente. DELETE /admin/reviews/:id -- borrar (ej. reseƱas de prueba). export async function POST(req: MedusaRequest<{ status?: string }>, res: MedusaResponse) { const status = req.body?.status; if (!status || !STATUSES.includes(status as (typeof STATUSES)[number])) { throw new MedusaError(MedusaError.Types.INVALID_DATA, `status debe ser uno de: ${STATUSES.join(", ")}`); } const reviews = req.scope.resolve(PRODUCT_REVIEW_MODULE); const review = await reviews.updateProductReviews({ id: req.params.id, status: status as (typeof STATUSES)[number] }); res.json({ review }); } export async function DELETE(req: MedusaRequest, res: MedusaResponse) { const reviews = req.scope.resolve(PRODUCT_REVIEW_MODULE); await reviews.deleteProductReviews(req.params.id); res.json({ id: req.params.id, deleted: true }); }