Documentation ¶
Index ¶
- Constants
- Variables
- type Arg
- type AsBody
- type AsQuery
- type Base64
- type CacheControl
- type Chain
- type Debugging
- type DependsOn
- type Details
- type EnvSource
- type FilterByRegex
- type Flatten
- type Function
- type HTTPClient
- type JSON
- type Match
- type Modifiers
- type NoExplode
- type NoMultiplex
- type Params
- type Query
- type ResourceID
- type Resources
- type Statement
- type Variable
Constants ¶
const ( FilterByRegexArgRegex = "regex" FilterByRegexArgPath = "path" )
const ( FromMethod string = "from" ToMethod = "to" IntoMethod = "into" UpdateMethod = "update" DeleteMethod = "delete" )
Methods available to be used in query statements.
const MatchArgRegex = "regex"
Variables ¶
var ErrRequestTimeout = errors.New("request timed out")
ErrRequestTimeout is the error returned by HTTPClient when a HTTP call fails due to the request exceeding the timeout defined in HTTPRequest.
Functions ¶
This section is empty.
Types ¶
type AsBody ¶
type AsBody struct {
Value interface{}
}
AsBody is a Function that define a `with` parameter as the request body for statements using to, into or patch methods.
func (AsBody) Arguments ¶ added in v5.3.0
Arguments return the arguments provided to AsBody function
func (AsBody) Map ¶
Map apply the given function to the Target value preserving the AsBody as a wrapper.
func (AsBody) SetArgument ¶ added in v5.3.0
SetArgument immutably updates the value of an argument by name
type AsQuery ¶ added in v5.4.0
type AsQuery struct {
Value interface{}
}
NoExplode is a Function that disable object explosion when resolving with values.
func (AsQuery) Arguments ¶ added in v5.4.0
Arguments return the arguments provided to AsQuery function
func (AsQuery) Map ¶ added in v5.4.0
Map apply the given function to the Target value preserving the AsQuery as a wrapper.
func (AsQuery) SetArgument ¶ added in v5.4.0
SetArgument immutably updates the value of an argument by name
type Base64 ¶
type Base64 struct {
Value interface{}
}
Base64 is a Function that encode the target value as base64.
func (Base64) Arguments ¶ added in v5.3.0
Arguments return the arguments provided to Base64 function
func (Base64) Map ¶
Map apply the given function to the Target value preserving the Base64 as a wrapper.
func (Base64) SetArgument ¶ added in v5.3.0
SetArgument immutably updates the value of an argument by name
type CacheControl ¶
type CacheControl struct { MaxAge interface{} SMaxAge interface{} }
CacheControl is the internal representation of the `max-age` and `s-max-age` clauses.
type Chain ¶
type Chain []interface{}
Chain is the internal representation of a chain parameter value.
type Debugging ¶
type Debugging struct { Method string Url string RequestHeaders map[string]string ResponseHeaders map[string]string Params map[string]interface{} RequestBody interface{} ResponseTime int64 }
Debugging represents the collection of information about the statement result. This is only used when the client enable it during query execution.
type DependsOn ¶ added in v5.1.0
DependsOn is the internal representation of the `depends-on` clause.
type Details ¶
type Details struct { Status int Success bool IgnoreErrors bool CacheControl restql.ResourceCacheControl Debug *Debugging }
Details represents metadata about the statement result.
type FilterByRegex ¶ added in v5.3.0
type FilterByRegex struct { Value interface{} Args []Arg }
NoExplode is a Function that disable object explosion when resolving with values.
func NewFilterByRegex ¶ added in v5.3.0
func NewFilterByRegex(target, path, regex interface{}) FilterByRegex
func (FilterByRegex) Argument ¶ added in v5.3.0
func (f FilterByRegex) Argument(name string) Arg
Argument fetches a FilterByRegex argument by name
func (FilterByRegex) Arguments ¶ added in v5.3.0
func (f FilterByRegex) Arguments() []Arg
Arguments return the arguments provided to FilterByRegex function
func (FilterByRegex) Map ¶ added in v5.3.0
func (f FilterByRegex) Map(fn func(target interface{}) interface{}) Function
Map apply the given function to the Target value preserving the FilterByRegex as a wrapper.
func (FilterByRegex) SetArgument ¶ added in v5.3.0
func (f FilterByRegex) SetArgument(name string, value interface{}) Function
SetArgument immutably updates the value of an argument by name
func (FilterByRegex) Target ¶ added in v5.3.0
func (f FilterByRegex) Target() interface{}
Target return the value upon which FilterByRegex will be applied.
type Flatten ¶
type Flatten struct {
Value interface{}
}
Flatten is a Function that encode the target value as a plain list of value.
func (Flatten) Arguments ¶ added in v5.3.0
Arguments return the arguments provided to Flatten function
func (Flatten) Map ¶
Map apply the given function to the Target value preserving the Flatten as a wrapper.
func (Flatten) SetArgument ¶ added in v5.3.0
SetArgument immutably updates the value of an argument by name
type Function ¶
type Function interface { Target() interface{} Arguments() []Arg Argument(string) Arg SetArgument(string, interface{}) Function Map(fn func(target interface{}) interface{}) Function }
Function is the interface implemented by types that provide encoding, filters and special behaviour through the apply operator.
Target returns the value upon which the function will be applied. Arguments return the arguments provided to the Function Argument fetches a Function argument by name SetArgument immutably updates the value of an argument by name Map uses a function to transform the target value preserving the current Function type wrapping it.
type HTTPClient ¶
type HTTPClient interface {
Do(ctx context.Context, request restql.HTTPRequest) (restql.HTTPResponse, error)
}
HTTPClient is the interface that wrap the method Do
Do takes an HTTPRequest and execute it respecting the cancellation signal from the given Context.
type JSON ¶
type JSON struct {
Value interface{}
}
JSON is a Function that encode the target value as json.
func (JSON) Map ¶
Map apply the given function to the Target value preserving the JSON as a wrapper.
func (JSON) SetArgument ¶ added in v5.3.0
SetArgument immutably updates the value of an argument by name
type Match ¶
type Match struct { Value interface{} Arg interface{} Args []Arg }
Match is a Function that select values from the statement result based on the given Arg.
func (Match) Map ¶
Map apply the given function to the Target value preserving the Match as a wrapper.
func (Match) SetArgument ¶ added in v5.3.0
SetArgument immutably updates the value of an argument by name
type Modifiers ¶
type Modifiers map[string]interface{}
Modifiers is the internal representation of the `use` clause.
type NoExplode ¶
type NoExplode struct {
Value interface{}
}
NoExplode is a Function that disable object explosion when resolving with values.
func (NoExplode) Arguments ¶ added in v5.3.0
Arguments return the arguments provided to NoExplode function
func (NoExplode) Map ¶
Map apply the given function to the Target value preserving the NoExplode as a wrapper.
func (NoExplode) SetArgument ¶ added in v5.3.0
SetArgument immutably updates the value of an argument by name
type NoMultiplex ¶
type NoMultiplex struct {
Value interface{}
}
NoMultiplex is a Function that disable request multiplexing of statements with list parameters.
func (NoMultiplex) Argument ¶ added in v5.3.0
func (nm NoMultiplex) Argument(name string) Arg
Argument fetches a NoMultiplex argument by name
func (NoMultiplex) Arguments ¶ added in v5.3.0
func (nm NoMultiplex) Arguments() []Arg
Arguments return the arguments provided to NoMultiplex function
func (NoMultiplex) Map ¶
func (nm NoMultiplex) Map(fn func(target interface{}) interface{}) Function
Map apply the given function to the Target value preserving the NoMultiplex as a wrapper.
func (NoMultiplex) SetArgument ¶ added in v5.3.0
func (nm NoMultiplex) SetArgument(name string, value interface{}) Function
SetArgument immutably updates the value of an argument by name
func (NoMultiplex) Target ¶
func (nm NoMultiplex) Target() interface{}
Target return the value upon which NoMultiplex will be applied.
type Params ¶
type Params struct { Body interface{} Values map[string]interface{} }
Params is the internal representation of the `with` clause.
type ResourceID ¶
type ResourceID string
ResourceID is an unique identifier used by a statement. If an alias is present, it is used. Otherwise, the resource name.
func NewResourceID ¶
func NewResourceID(statement Statement) ResourceID
NewResourceID make a ResourceID from a Statement.
type Resources ¶
type Resources map[ResourceID]interface{}
Resources represents the index of statements already resolved or to be resolved.
func NewResources ¶
NewResources constructs a Resources collection from a slice of statements.
type Statement ¶
type Statement struct { Method string Resource string Alias string In []string DependsOn DependsOn Headers map[string]interface{} Timeout interface{} With Params Only []interface{} Hidden bool CacheControl CacheControl IgnoreErrors bool }
Statement is the internal representation of a query statement.