diff --git a/kernel/api/outline.go b/kernel/api/outline.go index 83c35c6e3..893a278ef 100644 --- a/kernel/api/outline.go +++ b/kernel/api/outline.go @@ -25,6 +25,41 @@ import ( "github.com/siyuan-note/siyuan/kernel/util" ) +func getDocOutlineAndStorage(c *gin.Context) { + ret := gulu.Ret.NewResult() + defer c.JSON(http.StatusOK, ret) + + arg, ok := util.JsonArg(c, ret) + if !ok { + return + } + + if nil == arg["id"] { + return + } + preview := false + if previewArg := arg["preview"]; nil != previewArg { + preview = previewArg.(bool) + } + rootID := arg["id"].(string) + data, err := model.GetOutlineStorage(rootID) + if err != nil { + ret.Code = -1 + ret.Msg = err.Error() + return + } + headings, err := model.Outline(rootID, preview) + if err != nil { + ret.Code = 1 + ret.Msg = err.Error() + return + } + ret.Data = map[string]any{ + "headings": headings, + "storage": data, + } +} + func getDocOutline(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) diff --git a/kernel/api/router.go b/kernel/api/router.go index 4dfa9b025..09346da5d 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -81,7 +81,7 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/storage/updateRecentDocViewTime", model.CheckAuth, updateRecentDocViewTime) ginServer.Handle("POST", "/api/storage/updateRecentDocCloseTime", model.CheckAuth, updateRecentDocCloseTime) ginServer.Handle("POST", "/api/storage/updateRecentDocOpenTime", model.CheckAuth, updateRecentDocOpenTime) - + ginServer.Handle("POST", "/api/storage/getOutlineStorage", model.CheckAuth, getOutlineStorage) ginServer.Handle("POST", "/api/storage/setOutlineStorage", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, setOutlineStorage) ginServer.Handle("POST", "/api/storage/removeOutlineStorage", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, removeOutlineStorage) @@ -151,9 +151,12 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/history/getHistoryItems", model.CheckAuth, model.CheckAdminRole, getHistoryItems) ginServer.Handle("POST", "/api/outline/getDocOutline", model.CheckAuth, getDocOutline) + ginServer.Handle("POST", "/api/outline/getDocOutlineAndStorage", model.CheckAuth, getDocOutlineAndStorage) + ginServer.Handle("POST", "/api/bookmark/getBookmark", model.CheckAuth, getBookmark) ginServer.Handle("POST", "/api/bookmark/renameBookmark", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, renameBookmark) ginServer.Handle("POST", "/api/bookmark/removeBookmark", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, removeBookmark) + ginServer.Handle("POST", "/api/tag/getTag", model.CheckAuth, getTag) ginServer.Handle("POST", "/api/tag/renameTag", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, renameTag) ginServer.Handle("POST", "/api/tag/removeTag", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, removeTag)