search

package
v2.260.2 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2024 License: MIT Imports: 11 Imported by: 8

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Breakdown added in v2.104.0

type Breakdown struct {
	Total       int `json:"total"`
	Provisional int `json:"provisional,omitempty"`
	Confirmed   int `json:"confirmed,omitempty"`
	Postponed   int `json:"postponed,omitempty"`
	Published   int `json:"published,omitempty"`
	Cancelled   int `json:"cancelled,omitempty"`
	Census      int `json:"census,omitempty"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a dp-search-api client which can be used to make requests to the server

func NewClient

func NewClient(searchAPIURL string) *Client

NewClient creates a new instance of Client with a given search-api url

func NewWithHealthClient

func NewWithHealthClient(hcCli *healthcheck.Client) *Client

NewWithHealthClient creates a new instance of Client, reusing the URL and Clienter from the provided health check client.

func (*Client) Checker

func (c *Client) Checker(ctx context.Context, check *health.CheckState) error

Checker calls search api health endpoint and returns a check object to the caller.

func (*Client) GetDepartments

func (c *Client) GetDepartments(ctx context.Context, userAuthToken, serviceAuthToken, collectionID string, query url.Values) (d Department, err error)

GetDepartments returns the search results

func (*Client) GetReleases added in v2.104.0

func (c *Client) GetReleases(ctx context.Context, userAuthToken, serviceAuthToken, collectionID string, query url.Values) (ReleaseResponse, error)

GetReleases returns the search results for published Releases and upcoming Release Calendar entries

func (*Client) GetSearch

func (c *Client) GetSearch(ctx context.Context, userAuthToken, serviceAuthToken, collectionID string, query url.Values) (r Response, err error)

GetSearch returns the search results

type Contact

type Contact struct {
	Name      string `json:"name"`
	Telephone string `json:"telephone,omitempty"`
	Email     string `json:"email"`
}

Contact represents each search result contact details

type ContentItem

type ContentItem struct {
	Description
	LegacyDescription LegacyDescription `json:"description"`
	Type              string            `json:"type"`
	URI               string            `json:"uri"`
	Matches           *Matches          `json:"matches,omitempty"`
}

ContentItem represents each search result

type Department

type Department struct {
	Count int               `json:"count"`
	Took  int               `json:"took"`
	Items *[]DepartmentItem `json:"items"`
}

Department represents response from /departments/search end point

type DepartmentItem

type DepartmentItem struct {
	Code    string             `json:"code"`
	Name    string             `json:"name"`
	URL     string             `json:"url"`
	Matches *[]DepartmentMatch `json:"matches"`
}

DepartmentItem represents a department

type DepartmentMatch

type DepartmentMatch struct {
	Terms *[]MatchDetails `json:"terms"`
}

DepartmentMatch represents a department matches term

type Description

type Description struct {
	CDID            string              `json:"cdid"`
	DatasetID       string              `json:"dataset_id"`
	Keywords        []string            `json:"keywords"`
	MetaDescription string              `json:"meta_description"`
	ReleaseDate     string              `json:"release_date,omitempty"`
	Summary         string              `json:"summary"`
	Title           string              `json:"title"`
	Topics          []string            `json:"topics"`
	Highlight       *Highlight          `json:"highlight,omitempty"`
	DateChanges     []ReleaseDateChange `json:"date_changes,omitempty"`
	Cancelled       bool                `json:"cancelled,omitempty"`
	Finalised       bool                `json:"finalised,omitempty"`
	ProvisionalDate string              `json:"provisional_date,omitempty"`
	Published       bool                `json:"published,omitempty"`
	Language        string              `json:"language,omitempty"`
	Survey          string              `json:"survey,omitempty"`
}

Description represents each search result which is given from data in ES 7.10

type ErrInvalidSearchResponse

type ErrInvalidSearchResponse struct {
	// contains filtered or unexported fields
}

ErrInvalidSearchResponse is returned when the dp-search-api does not respond with a valid status

func NewSearchErrorResponse

func NewSearchErrorResponse(resp *http.Response, uri string) (e *ErrInvalidSearchResponse)

NewSearchErrorResponse creates an error response

func (ErrInvalidSearchResponse) Code

func (e ErrInvalidSearchResponse) Code() int

Code returns the status code received from dp-search-api if an error is returned

func (ErrInvalidSearchResponse) Error

func (e ErrInvalidSearchResponse) Error() string

Error should be called by the user to print out the stringified version of the error

type FilterCount added in v2.144.0

type FilterCount struct {
	Type  string `json:"type"`
	Count int    `json:"count"`
}

FilterCount represents the specific filter type for the search results with its respective count

type Highlight added in v2.4.3

type Highlight struct {
	Title           string    `json:"title,omitempty"`
	Keywords        *[]string `json:"keywords,omitempty"`
	Summary         string    `json:"summary,omitempty"`
	MetaDescription string    `json:"meta_description,omitempty"`
	DatasetID       string    `json:"dataset_id,omitempty"`
	Edition         string    `json:"edition,omitempty"`
	Topics          []string  `json:"topics,omitempty"`
}

Highlight contains specific metadata with search keyword(s) highlighted

type LegacyDescription added in v2.146.0

type LegacyDescription struct {
	CanonicalTopic    string    `json:"canonical_topic,omitempty"`
	Contact           *Contact  `json:"contact,omitempty"`
	DatasetID         string    `json:"dataset_id,omitempty"`
	Edition           string    `json:"edition,omitempty"`
	Headline1         string    `json:"headline1,omitempty"`
	Headline2         string    `json:"headline2,omitempty"`
	Headline3         string    `json:"headline3,omitempty"`
	Keywords          *[]string `json:"keywords,omitempty"`
	LatestRelease     *bool     `json:"latest_release,omitempty"`
	Language          string    `json:"language,omitempty"`
	MetaDescription   string    `json:"meta_description,omitempty"`
	NationalStatistic *bool     `json:"national_statistic,omitempty"`
	NextRelease       string    `json:"next_release,omitempty"`
	PreUnit           string    `json:"pre_unit,omitempty"`
	ReleaseDate       string    `json:"release_date,omitempty"`
	Source            string    `json:"source,omitempty"`
	Summary           string    `json:"summary"`
	Title             string    `json:"title"`
	Topics            []string  `json:"topics,omitempty"`
	Unit              string    `json:"unit,omitempty"`
	Highlight         Highlight `json:"highlight,omitempty"`
}

LegacyDescription represents each search result description which is given from data in ES 2.2

type MatchDetails

type MatchDetails struct {
	Value string `json:"value,omitempty"`
	Start int    `json:"start"`
	End   int    `json:"end"`
}

MatchDetails represents each search result matches' details

type Matches

type Matches struct {
	Description struct {
		Summary         *[]MatchDetails `json:"summary"`
		Title           *[]MatchDetails `json:"title"`
		Edition         *[]MatchDetails `json:"edition,omitempty"`
		MetaDescription *[]MatchDetails `json:"meta_description,omitempty"`
		Keywords        *[]MatchDetails `json:"keywords,omitempty"`
		DatasetID       *[]MatchDetails `json:"dataset_id,omitempty"`
	} `json:"description"`
}

Matches represents each search result matches

type Release added in v2.104.0

type Release struct {
	URI         string              `json:"uri"`
	DateChanges []ReleaseDateChange `json:"date_changes"`
	Description ReleaseDescription  `json:"description"`
	Highlight   *Highlight          `json:"highlight,omitempty"`
}

type ReleaseDateChange added in v2.104.0

type ReleaseDateChange struct {
	ChangeNotice string `json:"change_notice"`
	Date         string `json:"previous_date"`
}

type ReleaseDescription added in v2.104.0

type ReleaseDescription struct {
	Title           string   `json:"title"`
	Summary         string   `json:"summary"`
	ReleaseDate     string   `json:"release_date"`
	Published       bool     `json:"published"`
	Cancelled       bool     `json:"cancelled"`
	Finalised       bool     `json:"finalised"`
	Postponed       bool     `json:"postponed"`
	Census          bool     `json:"census"`
	Keywords        []string `json:"keywords,omitempty"`
	ProvisionalDate string   `json:"provisional_date,omitempty"`
	Language        string   `json:"language,omitempty"`
}

type ReleaseResponse added in v2.104.0

type ReleaseResponse struct {
	Took      int       `json:"took"`
	Breakdown Breakdown `json:"breakdown"`
	Releases  []Release `json:"releases"`
}

ReleaseResponse represents response from /search/releases endpoint

type Response

type Response struct {
	ES_710                bool          `json:"es_710"`
	Count                 int           `json:"count"`
	ContentTypes          []FilterCount `json:"content_types"`
	DistinctTopicCount    int           `json:"distinct_topics_count"`
	Items                 []ContentItem `json:"items"`
	Suggestions           []string      `json:"suggestions,omitempty"`
	Topics                []FilterCount `json:"topics"`
	AdditionalSuggestions []string      `json:"additional_suggestions,omitempty"`
}

Response represents the fields for the search results as returned by dp-search-api

Jump to

Keyboard shortcuts

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