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