Documentation ¶
Index ¶
- Constants
- func GraphQLJSONToCSV(ctx context.Context, r io.Reader, w io.Writer) (int32, error)
- type Category
- type Client
- func (c *Client) Checker(ctx context.Context, state *healthcheck.CheckState) error
- func (c *Client) CheckerAPIExt(ctx context.Context, state *healthcheck.CheckState) error
- func (c *Client) GetAreas(ctx context.Context, req GetAreasRequest) (*GetAreasResponse, error)
- func (c *Client) GetCodebook(ctx context.Context, req GetCodebookRequest) (*GetCodebookResponse, error)
- func (c *Client) GetDimensionOptions(ctx context.Context, req GetDimensionOptionsRequest) (*GetDimensionOptionsResponse, error)
- func (c *Client) GetDimensions(ctx context.Context, dataset string) (*GetDimensionsResponse, error)
- func (c *Client) GetDimensionsByName(ctx context.Context, req GetDimensionsByNameRequest) (*GetDimensionsResponse, error)
- func (c *Client) GetGeographyDimensions(ctx context.Context, req GetGeographyDimensionsRequest) (*GetGeographyDimensionsResponse, error)
- func (c *Client) GetParents(ctx context.Context, req GetParentsRequest) (*GetParentsResponse, error)
- func (c *Client) ListDatasets(ctx context.Context) ([]string, error)
- func (c *Client) ParseTable(table Table) (*bufio.Reader, error)
- func (c *Client) SearchDimensions(ctx context.Context, req SearchDimensionsRequest) (*GetDimensionsResponse, error)
- func (c *Client) StaticDatasetQuery(ctx context.Context, req StaticDatasetQueryRequest) (*StaticDatasetQuery, error)
- func (c *Client) StaticDatasetQueryStreamCSV(ctx context.Context, req StaticDatasetQueryRequest, consume Consumer) (int32, error)
- func (c *Client) StatusCode(err error) int
- type Codebook
- type Config
- type Consumer
- type Dataset
- type Dimension
- type Dimensions
- type DimensionsTable
- type ErrorResponse
- type Filter
- type GetAreasRequest
- type GetAreasResponse
- type GetCodebookRequest
- type GetCodebookResponse
- type GetDimensionOptionsRequest
- type GetDimensionOptionsResponse
- type GetDimensionsByNameRequest
- type GetDimensionsResponse
- type GetGeographyDimensionsRequest
- type GetGeographyDimensionsResponse
- type GetParentsRequest
- type GetParentsResponse
- type GraphQLClient
- type Iterator
- type ListDatasetsItem
- type ListDatasetsQuery
- type MapFrom
- type PaginationParams
- type PaginationResponse
- type QueryData
- type SearchDimensionsRequest
- type StaticDataset
- type StaticDatasetDimensionOptions
- type StaticDatasetQuery
- type StaticDatasetQueryRequest
- type Table
- type Variable
- type VariableBase
Constants ¶
const ( Service = "cantabular" ServiceAPIExt = "cantabularAPIExt" SoftwareVersion = "v10" )
Cantabular service names
const QueryAreas = `` /* 542-byte string literal not displayed */
QueryAreas is the graphQL query to search for areas and area types which match a specific string. This can be used to retrieve a list of all the areas for a given area type, or to search for specific area within all area types.
const QueryDimensionOptions = `` /* 258-byte string literal not displayed */
QueryDimensionOptions is the graphQL query to obtain static dataset dimension options (variables with categories)
const QueryDimensions = `` /* 286-byte string literal not displayed */
QueryDimensions is the graphQL query to obtain dimensions (variables without categories)
const QueryDimensionsByName = `` /* 329-byte string literal not displayed */
QueryDimensionsByName is the graphQL query to obtain dimensions by name (subset of variables, without categories)
const QueryDimensionsSearch = `` /* 303-byte string literal not displayed */
const QueryGeographyDimensions = `` /* 405-byte string literal not displayed */
QueryGeographyDimensions is the graphQL query to obtain geography dimensions (subset of variables, without categories)
const QueryParents = `` /* 452-byte string literal not displayed */
const QueryStaticDataset = `` /* 268-byte string literal not displayed */
QueryStaticDataset is the graphQL query to obtain static dataset counts (variables with categories and counts)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is the client for interacting with the Cantabular API
func NewClient ¶
func NewClient(cfg Config, ua httpClient, g GraphQLClient) *Client
NewClient returns a new Client
func (*Client) Checker ¶
func (c *Client) Checker(ctx context.Context, state *healthcheck.CheckState) error
Checker contacts the /vXX/datasets endpoint and updates the healthcheck state accordingly.
func (*Client) CheckerAPIExt ¶ added in v2.4.0
func (c *Client) CheckerAPIExt(ctx context.Context, state *healthcheck.CheckState) error
CheckerAPIExt contacts the /graphql endpoint with an empty query and updates the healthcheck state accordingly.
func (*Client) GetAreas ¶ added in v2.96.11
func (c *Client) GetAreas(ctx context.Context, req GetAreasRequest) (*GetAreasResponse, error)
GetAreas performs a graphQL query to retrieve the areas (categories) for a given area type. If the category is left empty, then all categories are returned. Results can also be filtered by area by passing a variable name.
func (*Client) GetCodebook ¶
func (c *Client) GetCodebook(ctx context.Context, req GetCodebookRequest) (*GetCodebookResponse, error)
GetCodebook gets a Codebook from cantabular.
func (*Client) GetDimensionOptions ¶ added in v2.7.1
func (c *Client) GetDimensionOptions(ctx context.Context, req GetDimensionOptionsRequest) (*GetDimensionOptionsResponse, error)
GetDimensionOptions performs a graphQL query to obtain the requested dimension options. It returns a Table with a list of Cantabular dimensions, where 'Variable' is the dimension and 'Categories' are the options The whole response is loaded to memory.
func (*Client) GetDimensions ¶ added in v2.7.1
GetDimensions performs a graphQL query to obtain all the dimensions for the provided cantabular dataset. The whole response is loaded to memory.
func (*Client) GetDimensionsByName ¶ added in v2.7.1
func (c *Client) GetDimensionsByName(ctx context.Context, req GetDimensionsByNameRequest) (*GetDimensionsResponse, error)
GetDimensionsByName performs a graphQL query to obtain only the dimensions that match the provided dimension names for the provided cantabular dataset. The whole response is loaded to memory.
func (*Client) GetGeographyDimensions ¶ added in v2.8.1
func (c *Client) GetGeographyDimensions(ctx context.Context, req GetGeographyDimensionsRequest) (*GetGeographyDimensionsResponse, error)
GetGeographyDimensions performs a graphQL query to obtain the geography dimensions for the provided cantabular dataset. The whole response is loaded to memory.
func (*Client) GetParents ¶ added in v2.148.0
func (c *Client) GetParents(ctx context.Context, req GetParentsRequest) (*GetParentsResponse, error)
GetParents returns a list of variables that map to the provided variable
func (*Client) ListDatasets ¶ added in v2.9.0
func (*Client) ParseTable ¶ added in v2.1.13
ParseTable takes a table from a GraphQL response and parses it into a header and rows of counts (observations) ready to be read line-by-line.
func (*Client) SearchDimensions ¶ added in v2.9.3
func (c *Client) SearchDimensions(ctx context.Context, req SearchDimensionsRequest) (*GetDimensionsResponse, error)
SearchDimensionsRequest performs a graphQL query to obtain the dimensions that match the provided text in the provided cantabular dataset. The whole response is loaded to memory.
func (*Client) StaticDatasetQuery ¶
func (c *Client) StaticDatasetQuery(ctx context.Context, req StaticDatasetQueryRequest) (*StaticDatasetQuery, error)
StaticDatasetQuery performs a query for a static dataset against the Cantabular Extended API using the /graphql endpoint and returns a StaticDatasetQuery, loading the whole response to memory. Use this method only if large query responses are NOT expected
func (*Client) StaticDatasetQueryStreamCSV ¶ added in v2.4.0
func (c *Client) StaticDatasetQueryStreamCSV(ctx context.Context, req StaticDatasetQueryRequest, consume Consumer) (int32, error)
StaticDatasetQueryStreamCSV performs a StaticDatasetQuery call and then starts 2 go-routines to transform the response body into a CSV stream and consume the transformed output with the provided Consumer concurrently. The number of CSV rows, including the header, is returned along with any error during the process. Use this method if large query responses are expected.
func (*Client) StatusCode ¶ added in v2.9.5
StatusCode provides a callback function whereby users can check a returned error for an embedded HTTP status code
type Codebook ¶
type Codebook []Variable
Codebook represents a 'codebook' object returned from Cantabular Server
type Dataset ¶
type Dataset struct { Name string `json:"name"` Digest string `json:"digest"` Description string `json:"description"` Size int `json:"size"` RulebaseVariable string `json:"ruleBaseVariable"` DateTime time.Time `json:"datetime"` }
Dataset represents a 'dataset' object returned from Cantabular Server
type Dimension ¶
type Dimension struct { Count int `json:"count"` Categories []Category `json:"categories"` Variable VariableBase `json:"variable"` }
Dimension represents the 'dimension' field from a GraphQL query dataset response
type Dimensions ¶ added in v2.4.0
type Dimensions []Dimension
Dimensions describes the structure of a table
func (Dimensions) NewIterator ¶ added in v2.4.0
func (dims Dimensions) NewIterator(ctx context.Context) *Iterator
NewIterator creates an iterator over a table on these Dimensions
type DimensionsTable ¶ added in v2.7.1
type DimensionsTable struct { Dimensions []Dimension `json:"dimensions"` Error string `json:"error,omitempty" ` }
DimensionsTable represents the 'table' field from the GraphQL dataset response, which contains only dimensions and error fields
type ErrorResponse ¶
type ErrorResponse struct {
Message string `json:"message"`
}
ErrorResponse models the error response from cantabular
type Filter ¶ added in v2.9.6
Filter holds the fields for the Cantabular GraphQL 'Filter' object used for specifying categories returned in tables
type GetAreasRequest ¶ added in v2.96.11
GetAreasRequest holds the request variables required for the POST [cantabular-ext]/graphql QueryAreas query.
type GetAreasResponse ¶ added in v2.96.11
GetAreasResponse holds the response body for POST [cantabular-ext]/graphql with a query to obtain static dataset variables and categories, without values.
type GetCodebookRequest ¶
GetCodebookRequest holds the query parameters for GET [cantabular-srv]/codebook/{dataset}?cats=xxx&v=xxx
type GetCodebookResponse ¶
type GetCodebookResponse struct { Codebook Codebook `json:"codebook"` Dataset Dataset `json:"dataset"` }
GetCodebookResponse holds the response body for GET [cantabular-srv]/codebook/{dataset}?cats=xxx&v=xxx
type GetDimensionOptionsRequest ¶ added in v2.8.1
GetDimensionOptionsRequest holds the request variables required from the caller for making a request to obtain dimension options (categories) for the provided cantabular Dataset and dimension names (Cantabular variables)
POST [cantabular-ext]/graphql with the encoded query
type GetDimensionOptionsResponse ¶ added in v2.7.1
type GetDimensionOptionsResponse struct {
Dataset StaticDatasetDimensionOptions `json:"dataset"`
}
GetDimensionOptionsResponse holds the response body for POST [cantabular-ext]/graphql with a query to obtain static dataset variables and categories, without values.
type GetDimensionsByNameRequest ¶ added in v2.8.1
GetDimensionsByNameRequest holds the request variables required from the caller for making a request to obtain dimensions (Cantabular variables) by name POST [cantabular-ext]/graphql
type GetDimensionsResponse ¶ added in v2.7.1
GetDimensionsResponse holds the response body for POST [cantabular-ext]/graphql with a query to obtain variables
type GetGeographyDimensionsRequest ¶ added in v2.122.0
type GetGeographyDimensionsRequest struct { PaginationParams Dataset string `json:"dataset"` }
GetGeographyDimensionsRequest holds the request parameters for POST [cantabular-ext]/graphql with a query to obtain geography variables
type GetGeographyDimensionsResponse ¶ added in v2.8.1
type GetGeographyDimensionsResponse struct { PaginationResponse Dataset gql.Dataset `json:"dataset"` }
GetGeographyDimensionsResponse holds the response body for POST [cantabular-ext]/graphql with a query to obtain geography variables
type GetParentsRequest ¶ added in v2.148.0
GetParentsRequest holds the input parameters for the GetParents query
type GetParentsResponse ¶ added in v2.148.0
GetParentsResponse is the response body for the GetParents query
type GraphQLClient ¶
type GraphQLClient interface {
Query(ctx context.Context, query interface{}, vars map[string]interface{}) error
}
GraphQLClient is the Client used by the GraphQL package to make queries
type Iterator ¶ added in v2.4.0
type Iterator struct {
// contains filtered or unexported fields
}
Iterator facilitates reading the coordinates of each cell in row-major order
func (*Iterator) CategoryAtColumn ¶ added in v2.4.0
CategoryAtColumn returns the i-th coordinate of the current cell
type ListDatasetsItem ¶ added in v2.9.0
type ListDatasetsQuery ¶ added in v2.9.0
type ListDatasetsQuery struct {
Datasets []ListDatasetsItem
}
type MapFrom ¶
type MapFrom struct { SourceNames []string `json:"sourceNames,omitempty"` Code []string `json:"codes,omitempty"` }
MapFrom represents the 'mapFrom' object from variable when category information is included
type PaginationParams ¶ added in v2.122.0
type PaginationResponse ¶ added in v2.122.0
type PaginationResponse struct { PaginationParams Count int `json:"count"` TotalCount int `json:"total_count"` }
type QueryData ¶ added in v2.8.1
type QueryData struct { PaginationParams Dataset string Text string Variables []string Filters []Filter Category string }
QueryData holds all the possible required variables to encode any of the graphql queries defined in this file.
type SearchDimensionsRequest ¶ added in v2.9.3
SearchDimensionsRequest holds the request variables required from the caller for making a request to search dimensions (Cantabular variables) by text POST [cantabular-ext]/graphql
type StaticDataset ¶
type StaticDataset struct {
Table Table `json:"table" graphql:"table(variables: $variables)"`
}
StaticDataset represents the 'dataset' field from a GraphQL static dataset query response
type StaticDatasetDimensionOptions ¶ added in v2.7.1
type StaticDatasetDimensionOptions struct {
Table DimensionsTable `json:"table"`
}
StaticDatasetDimensionOptions represents the 'dataset' field from a GraphQL static dataset query response, containing a DimensionsTable, without values
type StaticDatasetQuery ¶
type StaticDatasetQuery struct {
Dataset StaticDataset `json:"dataset" graphql:"dataset(name: $name)"`
}
StaticDatasetQuery holds the query for a static dataset landing page from POST [cantabular-ext]/graphql. It is used both as the internal query request to GraphQL as well as the response to the caller, as GraphQL query responses are essentially unmarshalled into the requests.
type StaticDatasetQueryRequest ¶
type StaticDatasetQueryRequest struct { Dataset string `json:"dataset"` Variables []string `json:"variables"` Filters []Filter `json:"filters"` }
StaticDatasetQueryRequest holds the request variables required from the caller for making a request for a static dataset landing page from POST [cantabular-ext]/graphql
type Table ¶
type Table struct { Dimensions []Dimension `json:"dimensions"` Values []int `json:"values"` Error string `json:"error,omitempty" ` }
Table represents the 'table' field from the GraphQL dataset query response
type Variable ¶
type Variable struct { VariableBase Len int `json:"len"` Codes []string `json:"codes,omitempty"` Labels []string `json:"labels,omitempty"` MapFrom []MapFrom `json:"mapFrom,omitempty"` }
Variable represents a 'variable' object returned from Cantabular
type VariableBase ¶
VariableBase represents the minimum amount of fields returned by Cantabular for a 'variable' object. Is kept separate from the full Variable struct because GraphQL/Cantabular has difficulty unmarshaling into a struct with unexpected objects (in this case MapFrom), even if they're set to not be included