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  }