Merge pull request #11 from KristianJBorgwarth/fix/db-context-load

fix: dbcontext load issue and remove logging from stdout
This commit is contained in:
Kristian 2026-04-05 13:22:20 +02:00 committed by GitHub
commit f600752d87
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 25 additions and 23 deletions

View file

@ -5,11 +5,13 @@ import (
"os"
"github.com/KristianJBorgwarth/dendrite.daemon/core/handlers"
"github.com/KristianJBorgwarth/dendrite.daemon/core/logging"
"github.com/KristianJBorgwarth/dendrite.daemon/core/server"
_ "modernc.org/sqlite"
)
func main() {
logging.Init()
server := server.NewServer()
server.RegisterHandler("initialize", handlers.NewInitializeHandler())

View file

@ -3,15 +3,17 @@ package frontmatter
import (
"bytes"
"errors"
"log/slog"
"gopkg.in/yaml.v3"
)
type FrontMatter struct {
Title string `yaml:"Title"`
Tags []string `yaml:"Tags"`
Created string `yaml:"Created"`
Updated string `yaml:"Updated"`
Author string `yaml:"Author"`
Title string `yaml:"title"`
Tags []string `yaml:"tags"`
Created string `yaml:"created"`
Updated string `yaml:"updated"`
Author string `yaml:"author"`
}
func ParseTags(file []byte) ([]string, error) {
@ -19,6 +21,7 @@ func ParseTags(file []byte) ([]string, error) {
if err != nil {
return nil, err
}
slog.Debug("parsed front matter", "fm", fm)
return fm.Tags, nil
}
@ -33,6 +36,7 @@ func parseFrontMatter(file []byte) (*FrontMatter, error) {
if idx := bytes.Index(content, []byte("---")); idx != -1 {
content = bytes.TrimSpace(content[:idx])
}
slog.Debug("yaml content to parse", "content", string(content))
var fm FrontMatter
if err := yaml.Unmarshal(content, &fm); err != nil {

View file

@ -3,6 +3,7 @@ package handlers
import (
"context"
"encoding/json"
"log/slog"
"github.com/KristianJBorgwarth/dendrite.daemon/core/frontmatter"
"github.com/KristianJBorgwarth/dendrite.daemon/core/models"
@ -15,7 +16,6 @@ type createNoteCommand struct {
Title string `json:"title"`
TemplatePath string `json:"templatePath"`
Path string `json:"path"`
Vars map[string]string `json:"vars"`
}
type CreateNoteHandler struct{
@ -40,11 +40,15 @@ func (h *CreateNoteHandler) Handle(ctx context.Context, raw json.RawMessage) (an
return nil, err
}
slog.Debug("rendered template", "data", string(data))
tags, err := frontmatter.ParseTags(data)
if err != nil {
return nil, err
}
slog.Debug("parsed tags", "tags", tags)
tx, err := h.uow.Begin()
if err != nil {
return nil, err
@ -60,6 +64,8 @@ func (h *CreateNoteHandler) Handle(ctx context.Context, raw json.RawMessage) (an
return nil, err
}
slog.Debug("Creating tags", "tags", tags)
if err = tagRepo.Upsert(ctx, tagModels); err != nil {
return nil, err
}

View file

@ -2,7 +2,6 @@
package logging
import (
"io"
"log/slog"
"os"
)
@ -13,9 +12,7 @@ func Init() {
panic(err)
}
writer := io.MultiWriter(os.Stdout, logFile)
handler := slog.NewTextHandler(writer, &slog.HandlerOptions{
handler := slog.NewTextHandler(logFile, &slog.HandlerOptions{
Level: slog.LevelDebug,
})

BIN
dendrite

Binary file not shown.

View file

@ -21,11 +21,11 @@ func InitializeDBContext(vaultPath string) (error) {
return nil
}
func GetDBContext() (*DBContext, error) {
func GetDBContext() (*DBContext) {
if dbContext == nil {
panic("DBContext is not initialized. Call InitializeDbContext first.")
}
return dbContext, nil
return dbContext
}
func CloseDBContext() error {

View file

@ -8,21 +8,17 @@ import (
)
type UnitOfWork struct {
dbContext *sql.DB
Transaction *sql.Tx
FileStore *store.FileStore
}
func NewUnitOfWork() *UnitOfWork {
db, err := persistence.GetDBContext()
if err != nil {
panic("failed to get DB context: " + err.Error())
}
return &UnitOfWork{dbContext: db.DB, FileStore: store.NewFileStore()}
return &UnitOfWork{FileStore: store.NewFileStore()}
}
func (u *UnitOfWork) Begin() (tx *sql.Tx, err error) {
tx, err = u.dbContext.Begin()
dbContext := persistence.GetDBContext()
tx, err = dbContext.DB.Begin()
if err != nil {
return nil, err
}

View file

@ -29,10 +29,7 @@ func NewDBFixture() *DBFixture {
dbPath := filepath.Join(os.TempDir(), ".index", "index.db")
dbContext, err := persistence.GetDBContext()
if err != nil {
panic("failed to get DB context: " + err.Error())
}
dbContext := persistence.GetDBContext()
return &DBFixture{
DB: dbContext.DB,