Files
ax/service/node_service.go

41 lines
1.0 KiB
Go
Raw Normal View History

2026-03-29 18:58:34 +02:00
package service
import "axolotl/models"
type NodeService interface {
Create(title, content, dueDate string, tags []string, rels map[models.RelType][]string) (*models.Node, error)
Update(node *models.Node) error
Delete(id string) error
GetByID(id string) (*models.Node, error)
List(opts ...ListOption) ([]*models.Node, error)
Exists(id string) (bool, error)
CanClose(id string) (bool, []string, error)
}
func InitNodeService(path string) error {
return InitSqliteDB(path)
}
func GetNodeService(cfg Config) (NodeService, error) {
db, err := GetSqliteDB(cfg)
if err != nil {
return nil, err
}
return &sqliteNodeService{db: db, userID: cfg.GetUser()}, nil
}
2026-03-29 18:58:34 +02:00
type listFilter struct {
tagPrefixes []string
relPrefixes []*models.Rel
2026-03-29 18:58:34 +02:00
}
type ListOption func(*listFilter)
func WithTags(prefixes ...string) ListOption {
return func(f *listFilter) { f.tagPrefixes = append(f.tagPrefixes, prefixes...) }
2026-03-29 18:58:34 +02:00
}
func WithRels(prefixes ...*models.Rel) ListOption {
return func(f *listFilter) { f.relPrefixes = append(f.relPrefixes, prefixes...) }
2026-03-29 18:58:34 +02:00
}