Files

61 lines
1.6 KiB
Go
Raw Permalink Normal View History

2023-06-23 20:37:56 +08:00
// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package internal
import (
"context"
2025-04-01 12:14:01 +02:00
"errors"
2023-06-23 20:37:56 +08:00
"code.gitea.io/gitea/models/db"
2023-06-23 20:37:56 +08:00
repo_model "code.gitea.io/gitea/models/repo"
2025-03-13 11:07:48 +08:00
"code.gitea.io/gitea/modules/indexer"
2023-06-23 20:37:56 +08:00
"code.gitea.io/gitea/modules/indexer/internal"
)
// Indexer defines an interface to index and search code contents
type Indexer interface {
internal.Indexer
Index(ctx context.Context, repo *repo_model.Repository, sha string, changes *RepoChanges) error
Delete(ctx context.Context, repoID int64) error
Search(ctx context.Context, opts *SearchOptions) (int64, []*SearchResult, []*SearchResultLanguages, error)
2025-03-13 11:07:48 +08:00
SupportedSearchModes() []indexer.SearchMode
}
type SearchOptions struct {
RepoIDs []int64
Keyword string
Language string
2025-03-13 11:07:48 +08:00
SearchMode indexer.SearchModeType
db.Paginator
2023-06-23 20:37:56 +08:00
}
// NewDummyIndexer returns a dummy indexer
func NewDummyIndexer() Indexer {
return &dummyIndexer{
Indexer: internal.NewDummyIndexer(),
}
}
type dummyIndexer struct {
internal.Indexer
}
2025-03-13 11:07:48 +08:00
func (d *dummyIndexer) SupportedSearchModes() []indexer.SearchMode {
return nil
}
2023-06-23 20:37:56 +08:00
func (d *dummyIndexer) Index(ctx context.Context, repo *repo_model.Repository, sha string, changes *RepoChanges) error {
2025-04-01 12:14:01 +02:00
return errors.New("indexer is not ready")
2023-06-23 20:37:56 +08:00
}
func (d *dummyIndexer) Delete(ctx context.Context, repoID int64) error {
2025-04-01 12:14:01 +02:00
return errors.New("indexer is not ready")
2023-06-23 20:37:56 +08:00
}
func (d *dummyIndexer) Search(ctx context.Context, opts *SearchOptions) (int64, []*SearchResult, []*SearchResultLanguages, error) {
2025-04-01 12:14:01 +02:00
return 0, nil, nil, errors.New("indexer is not ready")
2023-06-23 20:37:56 +08:00
}