gitea源码

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright 2023 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package internal
  4. import (
  5. "context"
  6. "errors"
  7. "code.gitea.io/gitea/modules/indexer"
  8. "code.gitea.io/gitea/modules/indexer/internal"
  9. )
  10. // Indexer defines an interface to indexer issues contents
  11. type Indexer interface {
  12. internal.Indexer
  13. Index(ctx context.Context, issue ...*IndexerData) error
  14. Delete(ctx context.Context, ids ...int64) error
  15. Search(ctx context.Context, options *SearchOptions) (*SearchResult, error)
  16. SupportedSearchModes() []indexer.SearchMode
  17. }
  18. // NewDummyIndexer returns a dummy indexer
  19. func NewDummyIndexer() Indexer {
  20. return &dummyIndexer{
  21. Indexer: internal.NewDummyIndexer(),
  22. }
  23. }
  24. type dummyIndexer struct {
  25. internal.Indexer
  26. }
  27. func (d *dummyIndexer) SupportedSearchModes() []indexer.SearchMode {
  28. return nil
  29. }
  30. func (d *dummyIndexer) Index(_ context.Context, _ ...*IndexerData) error {
  31. return errors.New("indexer is not ready")
  32. }
  33. func (d *dummyIndexer) Delete(_ context.Context, _ ...int64) error {
  34. return errors.New("indexer is not ready")
  35. }
  36. func (d *dummyIndexer) Search(_ context.Context, _ *SearchOptions) (*SearchResult, error) {
  37. return nil, errors.New("indexer is not ready")
  38. }