From e6fcb80d888222134135cd1b84ac8bd2e3b0ba8a Mon Sep 17 00:00:00 2001 From: yosaphatprs Date: Fri, 5 Dec 2025 17:05:22 +0700 Subject: [PATCH] fix: fix details when record already soft deleted --- .../tindakandokter/tindakandokter.service.ts | 13 +++++++---- .../DetailTindakanDokterView.vue | 23 +++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/backend/api/src/modules/tindakandokter/tindakandokter.service.ts b/backend/api/src/modules/tindakandokter/tindakandokter.service.ts index fdb834b..a7667d7 100644 --- a/backend/api/src/modules/tindakandokter/tindakandokter.service.ts +++ b/backend/api/src/modules/tindakandokter/tindakandokter.service.ts @@ -25,7 +25,7 @@ export class TindakanDokterService { timestamp: rawFabricLog.value.timestamp, }; - console.log('Processed flat log:', flatLog); + // console.log('Processed flat log:', flatLog); if ( index === arrLength - 1 && @@ -303,9 +303,13 @@ export class TindakanDokterService { }); const latestPayload = rawLogs?.[0]?.value?.payload; - const isTampered = latestPayload - ? currentDataHash !== latestPayload - : false; + let isTampered; + const isDeleted = rawLogs?.[0].value?.event?.split('_')[2] === 'deleted'; + if (isDeleted) { + isTampered = false; + } else { + isTampered = latestPayload ? currentDataHash !== latestPayload : false; + } const processedLogs = Array.isArray(rawLogs) ? rawLogs.map((log, index) => @@ -316,6 +320,7 @@ export class TindakanDokterService { return { logs: processedLogs, isTampered, + isDeleted, currentDataHash, }; } diff --git a/frontend/hospital-log/src/views/dashboard/pemberian-tindakan/DetailTindakanDokterView.vue b/frontend/hospital-log/src/views/dashboard/pemberian-tindakan/DetailTindakanDokterView.vue index b85fbbb..824fe10 100644 --- a/frontend/hospital-log/src/views/dashboard/pemberian-tindakan/DetailTindakanDokterView.vue +++ b/frontend/hospital-log/src/views/dashboard/pemberian-tindakan/DetailTindakanDokterView.vue @@ -20,6 +20,7 @@ void LOG_TABLE_COLUMNS; const tindakan = ref(); const dataLog = ref([]); const isTampered = ref(false); +const isDeleted = ref(false); const currentHash = ref(""); const route = useRoute(); @@ -112,9 +113,11 @@ const fetchLogData = async () => { currentDataHash?: string; logs?: any[]; isTampered?: boolean; + isDeleted?: boolean; }>(`/tindakan/${route.params.id}/log`); currentHash.value = result.currentDataHash ?? ""; isTampered.value = Boolean(result.isTampered); + isDeleted.value = Boolean(result.isDeleted); console.log("Tindakan Log API Result:", result); const logs = Array.isArray(result.logs) ? result.logs : []; dataLog.value = normalizeLogEntries(logs, isTampered.value); @@ -185,6 +188,26 @@ onMounted(async () => { Warning! Data Manipulation Detected. +