api

package
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 12, 2021 License: MIT Imports: 16 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Close added in v1.0.0

func Close(ctx context.Context) error

Close represents the graceful shutting down of the http server

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL