From 57ca69d674c9140dcd5ba1197282255913582444 Mon Sep 17 00:00:00 2001 From: matevip Date: Tue, 19 May 2026 20:06:27 +0800 Subject: [PATCH] fix(wiki): return HTTP 404 for missing knowledge bases and pages --- .../vip/mate/wiki/controller/WikiController.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiController.java b/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiController.java index d41542ad..b25d8fdd 100644 --- a/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiController.java +++ b/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiController.java @@ -72,7 +72,7 @@ public class WikiController { @RequestHeader(value = "X-Workspace-Id", required = false) Long workspaceId) { verifyKBWorkspace(id, workspaceId); WikiKnowledgeBaseEntity kb = kbService.getById(id); - if (kb == null) return R.fail("Knowledge base not found"); + if (kb == null) return R.fail(404, "Knowledge base not found"); return R.ok(withLivePageCount(kb)); } @@ -165,7 +165,7 @@ public class WikiController { @RequestHeader(value = "X-Workspace-Id", required = false) Long workspaceId) { verifyKBWorkspace(id, workspaceId); WikiKnowledgeBaseEntity kb = kbService.getById(id); - if (kb == null) return R.fail("Knowledge base not found"); + if (kb == null) return R.fail(404, "Knowledge base not found"); return R.ok(Map.of("content", kb.getConfigContent() != null ? kb.getConfigContent() : "")); } @@ -303,7 +303,7 @@ public class WikiController { verifyKBWorkspace(kbId, workspaceId); WikiRawMaterialEntity raw = rawService.getById(rawId); if (raw == null || !kbId.equals(raw.getKbId())) { - return R.fail("Raw material not found in this knowledge base"); + return R.fail(404, "Raw material not found in this knowledge base"); } rawService.delete(rawId); kbService.decrementRawCount(kbId); @@ -319,7 +319,7 @@ public class WikiController { verifyKBWorkspace(kbId, workspaceId); WikiRawMaterialEntity raw = rawService.getById(rawId); if (raw == null || !kbId.equals(raw.getKbId())) { - return R.fail("Raw material not found in this knowledge base"); + return R.fail(404, "Raw material not found in this knowledge base"); } // Force reprocessing by clearing the hash used to skip unchanged inputs. if (force) { @@ -337,7 +337,7 @@ public class WikiController { verifyKBWorkspace(kbId, workspaceId); WikiRawMaterialEntity raw = rawService.getById(rawId); if (raw == null || !kbId.equals(raw.getKbId())) { - return R.fail("Raw material not found in this knowledge base"); + return R.fail(404, "Raw material not found in this knowledge base"); } // requestCancel is idempotent: a no-op when the row is not processing, // so repeated clicks (or a click after the run already finished) are @@ -440,7 +440,7 @@ public class WikiController { @RequestHeader(value = "X-Workspace-Id", required = false) Long workspaceId) { verifyKBWorkspace(kbId, workspaceId); WikiPageEntity page = pageService.getBySlug(kbId, slug); - if (page == null) return R.fail("Page not found"); + if (page == null) return R.fail(404, "Page not found"); return R.ok(page); } @@ -540,7 +540,7 @@ public class WikiController { @RequestHeader(value = "X-Workspace-Id", required = false) Long workspaceId) { verifyKBWorkspace(kbId, workspaceId); WikiKnowledgeBaseEntity kb = kbService.getById(kbId); - if (kb == null) return R.fail("Knowledge base not found"); + if (kb == null) return R.fail(404, "Knowledge base not found"); List rawList = rawService.listByKbId(kbId); long pending = rawList.stream().filter(r -> "pending".equals(r.getProcessingStatus())).count(); @@ -618,7 +618,7 @@ public class WikiController { private void verifyKBWorkspace(Long kbId, Long headerWorkspaceId) { WikiKnowledgeBaseEntity kb = kbService.getById(kbId); if (kb == null) { - throw new MateClawException("Knowledge base not found"); + throw new MateClawException(404, "Knowledge base not found"); } long wsId = headerWorkspaceId != null ? headerWorkspaceId : 1L; if (kb.getWorkspaceId() != null && !kb.getWorkspaceId().equals(wsId)) {