🟡 P1 | POST /knowledge-bases/{id}/folders 创建文件夹 #64
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
iOS 知识点列表 ... 菜单中有「创建文件夹」选项,当前为占位按钮。
需求
新增 endpoint:
POST /knowledge-bases/{id}/folders
Body: { title: 文件夹名称, parentId: 可选的父文件夹ID }
Response: KnowledgeItem (itemType: folder)
关联
KnowledgeItem 已有 parentId 和 itemType 字段,文件夹本质上是一个 itemType=folder 的 KnowledgeItem
修复汇报 (2026-06-05)
实现
KnowledgeFolder的同时创建KnowledgeItem(itemType: "folder"),确保 iOS 知识点列表能展示文件夹GET /knowledge-items中与普通知识点一起返回,通过itemType区分状态
✅ 完成。
Bug 修复 (2026-06-06)
问题 1: 权限校验缺失
createFolder()未验证调用者是否是知识库 owner,任何人可往任意知识库创建文件夹。修复: 新增
userId参数,校验kb.userId === userId,并验证parentId指向的父文件夹属于同一知识库。Controller 透传@CurrentUser()。问题 2: 删除文件夹时孤儿 KnowledgeItem
deleteFolder()只软删除KnowledgeFolder记录,未删除创建时同步生成的KnowledgeItem(itemType: folder),导致列表中残留已删除的文件夹。修复:
deleteFolder()新增查找并软删除对应的 KnowledgeItem(按knowledgeBaseId + title + itemType=folder匹配)。状态
✅ 已修复。