Documentation
¶
Index ¶
- func Close(ctx context.Context) error
- func CreateAndInitialise(bindAddr string, queryBuilder QueryBuilder, ...) error
- func DataLookupHandlerFunc(elasticSearchClient ElasticSearcher) http.HandlerFunc
- func HealthCheckHandlerCreator(elasticSearchClient ElasticSearcher) func(http.ResponseWriter, *http.Request)
- func SearchHandlerFunc(queryBuilder QueryBuilder, elasticSearchClient ElasticSearcher, ...) http.HandlerFunc
- func SetupData() error
- func SetupTimeseries() error
- func TimeseriesLookupHandlerFunc(elasticSearchClient ElasticSearcher) http.HandlerFunc
- type ElasticSearcher
- type ElasticSearcherMock
- func (mock *ElasticSearcherMock) GetStatus(ctx context.Context) ([]byte, error)
- func (mock *ElasticSearcherMock) GetStatusCalls() []struct{ ... }
- func (mock *ElasticSearcherMock) MultiSearch(ctx context.Context, index string, docType string, request []byte) ([]byte, error)
- func (mock *ElasticSearcherMock) MultiSearchCalls() []struct{ ... }
- func (mock *ElasticSearcherMock) Search(ctx context.Context, index string, docType string, request []byte) ([]byte, error)
- func (mock *ElasticSearcherMock) SearchCalls() []struct{ ... }
- type QueryBuilder
- type QueryBuilderMock
- type ResponseTransformer
- type ResponseTransformerMock
- type SearchAPI
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateAndInitialise ¶ added in v1.0.0
func CreateAndInitialise(bindAddr string, queryBuilder QueryBuilder, elasticSearchClient ElasticSearcher, transformer ResponseTransformer, errorChan chan error) error
CreateAndInitialise initiates a new Search API
func DataLookupHandlerFunc ¶ added in v1.0.0
func DataLookupHandlerFunc(elasticSearchClient ElasticSearcher) http.HandlerFunc
DataLookupHandlerFunc returns a http handler function handling search api requests.
func HealthCheckHandlerCreator ¶ added in v1.0.0
func HealthCheckHandlerCreator(elasticSearchClient ElasticSearcher) func(http.ResponseWriter, *http.Request)
func SearchHandlerFunc ¶
func SearchHandlerFunc(queryBuilder QueryBuilder, elasticSearchClient ElasticSearcher, transformer ResponseTransformer) http.HandlerFunc
SearchHandlerFunc returns a http handler function handling search api requests.
func SetupData ¶ added in v1.0.0
func SetupData() error
SetupData loads templates for use by the timeseries lookup handler and should be done only once
func SetupTimeseries ¶ added in v1.0.0
func SetupTimeseries() error
SetupTimeseries loads templates for use by the timeseries lookup handler and should be done only once
func TimeseriesLookupHandlerFunc ¶ added in v1.0.0
func TimeseriesLookupHandlerFunc(elasticSearchClient ElasticSearcher) http.HandlerFunc
TimeseriesLookupHandlerFunc returns a http handler function handling search api requests.
Types ¶
type ElasticSearcher ¶
type ElasticSearcher interface {
Search(ctx context.Context, index string, docType string, request []byte) ([]byte, error)
MultiSearch(ctx context.Context, index string, docType string, request []byte) ([]byte, error)
GetStatus(ctx context.Context) ([]byte, error)
}
ElasticSearcher provides client methods for the elasticsearch package
type ElasticSearcherMock ¶
type ElasticSearcherMock struct {
// GetStatusFunc mocks the GetStatus method.
GetStatusFunc func(ctx context.Context) ([]byte, error)
// MultiSearchFunc mocks the MultiSearch method.
MultiSearchFunc func(ctx context.Context, index string, docType string, request []byte) ([]byte, error)
// SearchFunc mocks the Search method.
SearchFunc func(ctx context.Context, index string, docType string, request []byte) ([]byte, error)
// contains filtered or unexported fields
}
ElasticSearcherMock is a mock implementation of ElasticSearcher.
func TestSomethingThatUsesElasticSearcher(t *testing.T) {
// make and configure a mocked ElasticSearcher
mockedElasticSearcher := &ElasticSearcherMock{
GetStatusFunc: func(ctx context.Context) ([]byte, error) {
panic("mock out the GetStatus method")
},
MultiSearchFunc: func(ctx context.Context, index string, docType string, request []byte) ([]byte, error) {
panic("mock out the MultiSearch method")
},
SearchFunc: func(ctx context.Context, index string, docType string, request []byte) ([]byte, error) {
panic("mock out the Search method")
},
}
// use mockedElasticSearcher in code that requires ElasticSearcher
// and then make assertions.
}
func (*ElasticSearcherMock) GetStatus ¶ added in v1.5.0
func (mock *ElasticSearcherMock) GetStatus(ctx context.Context) ([]byte, error)
GetStatus calls GetStatusFunc.
func (*ElasticSearcherMock) GetStatusCalls ¶ added in v1.5.0
func (mock *ElasticSearcherMock) GetStatusCalls() []struct { Ctx context.Context }
GetStatusCalls gets all the calls that were made to GetStatus. Check the length with:
len(mockedElasticSearcher.GetStatusCalls())
func (*ElasticSearcherMock) MultiSearch ¶
func (mock *ElasticSearcherMock) MultiSearch(ctx context.Context, index string, docType string, request []byte) ([]byte, error)
MultiSearch calls MultiSearchFunc.
func (*ElasticSearcherMock) MultiSearchCalls ¶
func (mock *ElasticSearcherMock) MultiSearchCalls() []struct { Ctx context.Context Index string DocType string Request []byte }
MultiSearchCalls gets all the calls that were made to MultiSearch. Check the length with:
len(mockedElasticSearcher.MultiSearchCalls())
func (*ElasticSearcherMock) Search ¶
func (mock *ElasticSearcherMock) Search(ctx context.Context, index string, docType string, request []byte) ([]byte, error)
Search calls SearchFunc.
func (*ElasticSearcherMock) SearchCalls ¶
func (mock *ElasticSearcherMock) SearchCalls() []struct { Ctx context.Context Index string DocType string Request []byte }
SearchCalls gets all the calls that were made to Search. Check the length with:
len(mockedElasticSearcher.SearchCalls())
type QueryBuilder ¶
type QueryBuilder interface {
BuildSearchQuery(ctx context.Context, q, contentTypes, sort string, limit, offset int) ([]byte, error)
}
QueryBuilder provides methods for the search package
type QueryBuilderMock ¶
type QueryBuilderMock struct {
// BuildSearchQueryFunc mocks the BuildSearchQuery method.
BuildSearchQueryFunc func(ctx context.Context, q string, contentTypes string, sort string, limit int, offset int) ([]byte, error)
// contains filtered or unexported fields
}
QueryBuilderMock is a mock implementation of QueryBuilder.
func TestSomethingThatUsesQueryBuilder(t *testing.T) {
// make and configure a mocked QueryBuilder
mockedQueryBuilder := &QueryBuilderMock{
BuildSearchQueryFunc: func(ctx context.Context, q string, contentTypes string, sort string, limit int, offset int) ([]byte, error) {
panic("mock out the BuildSearchQuery method")
},
}
// use mockedQueryBuilder in code that requires QueryBuilder
// and then make assertions.
}
func (*QueryBuilderMock) BuildSearchQuery ¶
func (mock *QueryBuilderMock) BuildSearchQuery(ctx context.Context, q string, contentTypes string, sort string, limit int, offset int) ([]byte, error)
BuildSearchQuery calls BuildSearchQueryFunc.
func (*QueryBuilderMock) BuildSearchQueryCalls ¶
func (mock *QueryBuilderMock) BuildSearchQueryCalls() []struct { Ctx context.Context Q string ContentTypes string Sort string Limit int Offset int }
BuildSearchQueryCalls gets all the calls that were made to BuildSearchQuery. Check the length with:
len(mockedQueryBuilder.BuildSearchQueryCalls())
type ResponseTransformer ¶
type ResponseTransformer interface {
TransformSearchResponse(ctx context.Context, responseData []byte) ([]byte, error)
}
ResponseTransformer provides methods for the transform package
type ResponseTransformerMock ¶
type ResponseTransformerMock struct {
// TransformSearchResponseFunc mocks the TransformSearchResponse method.
TransformSearchResponseFunc func(ctx context.Context, responseData []byte) ([]byte, error)
// contains filtered or unexported fields
}
ResponseTransformerMock is a mock implementation of ResponseTransformer.
func TestSomethingThatUsesResponseTransformer(t *testing.T) {
// make and configure a mocked ResponseTransformer
mockedResponseTransformer := &ResponseTransformerMock{
TransformSearchResponseFunc: func(ctx context.Context, responseData []byte) ([]byte, error) {
panic("mock out the TransformSearchResponse method")
},
}
// use mockedResponseTransformer in code that requires ResponseTransformer
// and then make assertions.
}
func (*ResponseTransformerMock) TransformSearchResponse ¶
func (mock *ResponseTransformerMock) TransformSearchResponse(ctx context.Context, responseData []byte) ([]byte, error)
TransformSearchResponse calls TransformSearchResponseFunc.
func (*ResponseTransformerMock) TransformSearchResponseCalls ¶
func (mock *ResponseTransformerMock) TransformSearchResponseCalls() []struct { Ctx context.Context ResponseData []byte }
TransformSearchResponseCalls gets all the calls that were made to TransformSearchResponse. Check the length with:
len(mockedResponseTransformer.TransformSearchResponseCalls())
type SearchAPI ¶
type SearchAPI struct {
Router *mux.Router
QueryBuilder QueryBuilder
ElasticSearch ElasticSearcher
Transformer ResponseTransformer
}
SearchAPI provides an API around elasticseach
func NewSearchAPI ¶
func NewSearchAPI(router *mux.Router, elasticSearch ElasticSearcher, queryBuilder QueryBuilder, transformer ResponseTransformer) *SearchAPI
NewSearchAPI returns a new Search API struct after registering the routes