forked from
tangled.org/core
Monorepo for Tangled
1package indexer
2
3import (
4 "context"
5 "log/slog"
6
7 "tangled.org/core/appview/db"
8 issues_indexer "tangled.org/core/appview/indexer/issues"
9 pulls_indexer "tangled.org/core/appview/indexer/pulls"
10 repos_indexer "tangled.org/core/appview/indexer/repos"
11 "tangled.org/core/appview/notify"
12 tlog "tangled.org/core/log"
13)
14
15type Indexer struct {
16 Issues *issues_indexer.Indexer
17 Pulls *pulls_indexer.Indexer
18 Repos *repos_indexer.Indexer
19 logger *slog.Logger
20 notify.BaseNotifier
21}
22
23func New(logger *slog.Logger) *Indexer {
24 return &Indexer{
25 issues_indexer.NewIndexer("indexes/issues.bleve"),
26 pulls_indexer.NewIndexer("indexes/pulls.bleve"),
27 repos_indexer.NewIndexer("indexes/repos.bleve"),
28 logger,
29 notify.BaseNotifier{},
30 }
31}
32
33// Init initializes all indexers
34func (ix *Indexer) Init(ctx context.Context, db *db.DB) error {
35 ctx = tlog.IntoContext(ctx, ix.logger)
36 ix.Issues.Init(ctx, db)
37 ix.Pulls.Init(ctx, db)
38 ix.Repos.Init(ctx, db)
39 return nil
40}