dendrite.nvim/persistence/repositories/cfe_repository.go

41 lines
945 B
Go

package repositories
import (
"context"
"github.com/KristianJBorgwarth/dendrite.daemon/core/models"
"github.com/KristianJBorgwarth/dendrite.daemon/persistence"
)
type ICfeRepository interface {
InsertRange(ctx context.Context, dbContext persistence.IDbContext, cfe []*models.CustomFronMatter) error
}
type cfeRepository struct {
readDBContext persistence.ReadContext
}
func NewCfeRepository(rdb persistence.ReadContext) ICfeRepository {
return &cfeRepository{readDBContext: rdb}
}
func (r *cfeRepository) InsertRange(
ctx context.Context,
dbCtx persistence.IDbContext,
cfe []*models.CustomFronMatter,
) error {
statement, err := dbCtx.Prepare(
`INSERT INTO custom_frontmatter (note_id, key, value)
VALUES (?, ?, ?) ON CONFLICT DO NOTHING;`,)
if err != nil {
return err
}
for _, c := range cfe {
if _, err := statement.ExecContext(ctx, c.NodeID(), c.Key(), c.Value()); err != nil {
return err
}
}
return nil
}