Documentation ¶
Index ¶
- Constants
- type Category
- type Client
- func (c *Client) Checker(ctx context.Context, state *healthcheck.CheckState) error
- func (c *Client) GetCodebook(ctx context.Context, req GetCodebookRequest) (*GetCodebookResponse, error)
- func (c *Client) ParseTable(table Table) (*bufio.Reader, error)
- func (c *Client) StaticDatasetQuery(ctx context.Context, req StaticDatasetQueryRequest) (*StaticDatasetQuery, error)
- type Codebook
- type Config
- type Dataset
- type Dimension
- type ErrorResponse
- type GetCodebookRequest
- type GetCodebookResponse
- type GraphQLClient
- type MapFrom
- type StaticDataset
- type StaticDatasetQuery
- type StaticDatasetQueryRequest
- type Table
- type Variable
- type VariableBase
Constants ¶
const Service = "cantabular"
Service is the cantabular service name
Variables ¶
This section is empty.
Functions ¶
This section is empty.
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 /v9/datasets endpoint and updates the healthcheck state accordingly.
func (*Client) GetCodebook ¶
func (c *Client) GetCodebook(ctx context.Context, req GetCodebookRequest) (*GetCodebookResponse, error)
GetCodebook gets a Codebook from cantabular.
func (*Client) ParseTable ¶
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) 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
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 ErrorResponse ¶
type ErrorResponse struct {
Message string `json:"message"`
}
ErrorResponse models the error response from cantabular
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 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 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 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 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"` }
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