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 Db *db.DB
21 notify.BaseNotifier
22}
23
24func New(logger *slog.Logger, db *db.DB) *Indexer {
25 return &Indexer{
26 issues_indexer.NewIndexer("indexes/issues.bleve"),
27 pulls_indexer.NewIndexer("indexes/pulls.bleve"),
28 repos_indexer.NewIndexer("indexes/repos.bleve"),
29 logger,
30 db,
31 notify.BaseNotifier{},
32 }
33}
34
35// Init initializes all indexers
36func (ix *Indexer) Init(ctx context.Context) error {
37 ctx = tlog.IntoContext(ctx, ix.logger)
38 ix.Issues.Init(ctx, ix.Db)
39 ix.Pulls.Init(ctx, ix.Db)
40 ix.Repos.Init(ctx, ix.Db)
41 return nil
42}