diff --git a/cmd/main.go b/cmd/main.go index 3d2e16a..247dcd4 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -32,6 +32,7 @@ func main() { idxr := services.NewIndexRebuilder(uow, noteRepo, linkRepo, tagRepo, indexRepo ) server.RegisterHandler("vault/init", vault.NewInitializeHandler(idxr, noteService)) + server.RegisterHandler("vault/rebuild", vault.NewRebuildIndexHandler(idxr)) server.RegisterHandler("note/create", note.NewCreateNoteHandler(uow, tagService, noteRepo)) server.RegisterHandler("note/save", note.NewSaveNoteHandler(uow, noteRepo, tagService, noteService, linkService)) server.RegisterHandler("note/goto", note.NewGotoNoteHandler(noteRepo)) diff --git a/core/handlers/note/save_note_handler.go b/core/handlers/note/save_note_handler.go index 6fb7534..c75c1c5 100644 --- a/core/handlers/note/save_note_handler.go +++ b/core/handlers/note/save_note_handler.go @@ -3,7 +3,6 @@ package note import ( "context" "encoding/json" - "log/slog" filehandling "github.com/KristianJBorgwarth/dendrite.daemon/core/file_handling" "github.com/KristianJBorgwarth/dendrite.daemon/core/services" @@ -34,7 +33,6 @@ func NewSaveNoteHandler( func (h *SaveNoteHandler) Handle(ctx context.Context, raw json.RawMessage) (any, error) { var cmd saveNoteCommand - slog.Debug("Handling SaveNoteCommand", "raw", string(raw)) if err := json.Unmarshal(raw, &cmd); err != nil { return nil, err @@ -42,12 +40,9 @@ func (h *SaveNoteHandler) Handle(ctx context.Context, raw json.RawMessage) (any, file, err := filehandling.ReadFile(cmd.Path) if err != nil { - slog.Debug("Failed to read file", "path", cmd.Path, "error", err) return nil, err } - slog.Debug("Parsed file", "path", cmd.Path, "slug", file.Slug, "title", file.Title, "tags", file.FrontMatter.Tags, "links", file.ExtractedLinks) - tx, err := h.uow.Begin() if err != nil { return nil, err @@ -56,40 +51,33 @@ func (h *SaveNoteHandler) Handle(ctx context.Context, raw json.RawMessage) (any, note, err := h.noteRepo.GetBySlug(ctx, file.Slug) if err != nil { - slog.Debug("Failed to get note by slug", "slug", file.Slug, "error", err) return nil, err } if note == nil { note, err = h.noteService.CreateNote(ctx, tx, file.Path, file.Title, file.Slug) if err != nil { - slog.Debug("Failed to save new note", "slug", file.Slug, "error", err) return nil, err } } else { if err = h.noteService.DeleteNoteMetaData(ctx, tx, note.ID()); err != nil { - slog.Debug("Failed to delete existing note metadata", "noteID", note.ID(), "error", err) return nil, err } if err = h.noteService.UpdateNote(ctx, tx, note.ID(), file.Path, file.Title, file.Slug); err != nil { - slog.Debug("Failed to update existing note", "noteID", note.ID(), "error", err) return nil, err } } tagModels, err := h.tagService.CreateTags(ctx, tx, file.FrontMatter.Tags) if err != nil { - slog.Debug("Failed to create tags", "tags", file.FrontMatter.Tags, "error", err) return nil, err } if err = h.tagService.CreateNoteTags(ctx, tx, note.ID(), tagModels); err != nil { - slog.Debug("Failed to create note tags", "noteID", note.ID(), "tags", file.FrontMatter.Tags, "error", err) return nil, err } if err = h.linkService.CreateLinks(ctx, tx, note.ID(), file.ExtractedLinks); err != nil { - slog.Debug("Failed to create links", "noteID", note.ID(), "links", file.ExtractedLinks, "error", err) return nil, err } diff --git a/core/handlers/vault/rebuild_index_handler.go b/core/handlers/vault/rebuild_index_handler.go new file mode 100644 index 0000000..f8af004 --- /dev/null +++ b/core/handlers/vault/rebuild_index_handler.go @@ -0,0 +1,26 @@ +package vault + +import ( + "context" + "encoding/json" + + "github.com/KristianJBorgwarth/dendrite.daemon/core/services" + "github.com/KristianJBorgwarth/dendrite.daemon/persistence/store" +) + +type RebuildIndexHandler struct { + idxRebuilder services.IIndexRebuilder +} + +func NewRebuildIndexHandler(idxR services.IIndexRebuilder) *RebuildIndexHandler { + return &RebuildIndexHandler{idxRebuilder: idxR} +} + +func (h RebuildIndexHandler) Handle(ctx context.Context, raw json.RawMessage) (any, error) { + err := h.idxRebuilder.RebuildIndex(ctx, store.GetVaultStore().Config.VaultPath()) + if err != nil { + return nil, err + } + + return nil, nil +} diff --git a/dendrite b/dendrite index ade3ffa..b3577fe 100755 Binary files a/dendrite and b/dendrite differ