From 27a1adee204f970e49af16cec3a7111fd5804929 Mon Sep 17 00:00:00 2001 From: LeoAchu Date: Sat, 18 Apr 2026 20:42:18 -0300 Subject: [PATCH 1/2] OM-318: correccion rabbit v5 --- .../reports/product/product-report.service.js | 54 +++++++++++-------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/src/modules/global/reports/product/product-report.service.js b/src/modules/global/reports/product/product-report.service.js index d716135..5a93f67 100644 --- a/src/modules/global/reports/product/product-report.service.js +++ b/src/modules/global/reports/product/product-report.service.js @@ -165,31 +165,41 @@ export const updateProductReportService = async (authenticatedUserId, reportId, const isClosed = ["RESOLVED", "REJECTED"].includes(report_status); - const updatedReport = await prisma.productReports.update({ - where: { id_product_report: resolvedReportId }, - data: { - report_status, - ...(trimmedNotes && { notes: trimmedNotes }), - ...(isClosed && { - resolved_by: resolvedUserId, - resolved_at: new Date(), - }), - }, - select: { - id_product_report: true, - report_status: true, - notes: true, - resolved_at: true, - resolver: { - select: { - id_user: true, - name: true, + try { + const updatedReport = await prisma.productReports.update({ + where: { + id_product_report: resolvedReportId, + report_status: currentStatus, // solo actualiza si el estado no cambió + }, + data: { + report_status, + ...(trimmedNotes && { notes: trimmedNotes }), + ...(isClosed && { + resolved_by: resolvedUserId, + resolved_at: new Date(), + }), + }, + select: { + id_product_report: true, + report_status: true, + notes: true, + resolved_at: true, + resolver: { + select: { + id_user: true, + name: true, + }, }, }, - }, - }); + }); + + return updatedReport; - return updatedReport; + } catch (error) { + if (error.code === "P2025") + throw new ValidationError("El reporte fue modificado por otro proceso, intentá de nuevo"); + throw error; + } }; // Endpoint para que Admin y Seller puedan obtener reportes de productos filtrados por estado del reporte From 6d6d306f814325d66a2e92cc53aef20952384fab Mon Sep 17 00:00:00 2001 From: LeoAchu Date: Sat, 18 Apr 2026 23:10:49 -0300 Subject: [PATCH 2/2] OM-318: correccion de rabbit v6 --- .../reports/product/product-report.service.js | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/modules/global/reports/product/product-report.service.js b/src/modules/global/reports/product/product-report.service.js index 5a93f67..5a7d4cd 100644 --- a/src/modules/global/reports/product/product-report.service.js +++ b/src/modules/global/reports/product/product-report.service.js @@ -58,7 +58,7 @@ export const getProductsReportsService = async (authenticatedUserId) => { if (!user) throw new NotFoundError("Usuario no encontrado"); - + let productsReports; if (user.role === "ADMIN") { @@ -165,11 +165,14 @@ export const updateProductReportService = async (authenticatedUserId, reportId, const isClosed = ["RESOLVED", "REJECTED"].includes(report_status); + let updatedReport; try { - const updatedReport = await prisma.productReports.update({ + updatedReport = await prisma.productReports.update({ where: { id_product_report: resolvedReportId, - report_status: currentStatus, // solo actualiza si el estado no cambió + status: true, + report_status: currentStatus, + product: { fk_store: store.id_store }, }, data: { report_status, @@ -192,14 +195,14 @@ export const updateProductReportService = async (authenticatedUserId, reportId, }, }, }); - - return updatedReport; - - } catch (error) { - if (error.code === "P2025") - throw new ValidationError("El reporte fue modificado por otro proceso, intentá de nuevo"); - throw error; + } catch (e) { + if (e?.code === "P2025") { + throw new NotFoundError("El reporte ya no está disponible o fue modificado por otro proceso"); + } + throw e; } + + return updatedReport; }; // Endpoint para que Admin y Seller puedan obtener reportes de productos filtrados por estado del reporte