41 lines
945 B
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
|
|
}
|