Documentation
¶
Index ¶
- type APIConnection
- func (c *APIConnection) Delete(resource string, body RequestBody) (*APIResponse, error)
- func (c *APIConnection) Get(resource string, parameters APIRequestParameters) (*APIResponse, error)
- func (c *APIConnection) Invoke(request APIRequest) (*APIResponse, error)
- func (c *APIConnection) InvokeRequest(req *http.Request) (*APIResponse, error)
- func (c *APIConnection) NewRequest(request APIRequest) (*http.Request, error)
- func (c *APIConnection) Patch(resource string, body RequestBody) (*APIResponse, error)
- func (c *APIConnection) Post(resource string, body RequestBody) (*APIResponse, error)
- func (c *APIConnection) Put(resource string, body RequestBody) (*APIResponse, error)
- type APIKeyCredentials
- type APIRequest
- type APIRequestBodyDefaultValidator
- type APIRequestFiltering
- type APIRequestFilteringOperator
- type APIRequestPagination
- type APIRequestParameters
- func (p *APIRequestParameters) WithFilter(filter APIRequestFiltering) *APIRequestParameters
- func (p *APIRequestParameters) WithFilters(filters []APIRequestFiltering) *APIRequestParameters
- func (p *APIRequestParameters) WithPagination(pagination APIRequestPagination) *APIRequestParameters
- func (p *APIRequestParameters) WithSorting(sorting APIRequestSorting) *APIRequestParameters
- type APIRequestSorting
- type APIResponse
- type APIResponseBody
- type APIResponseError
- type APIResponseMetadata
- type APIResponseMetadataPagination
- type APIResponseMetadataPaginationLinks
- type AuthHeaders
- type Connection
- type Credentials
- type Date
- type DateTime
- type Enum
- type IPAddress
- type RequestAll
- type RequestBody
- type ResponseBody
- type Validatable
- type ValidationError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIConnection ¶
type APIConnection struct { HTTPClient *http.Client Credentials Credentials APIURI string APIScheme string Headers http.Header UserAgent string }
func NewAPIConnection ¶
func NewAPIConnection(credentials Credentials) *APIConnection
func NewAPIKeyCredentialsAPIConnection ¶
func NewAPIKeyCredentialsAPIConnection(apiKey string) *APIConnection
NewAPIKeyCredentialsAPIConnection creates a new client
func (*APIConnection) Delete ¶
func (c *APIConnection) Delete(resource string, body RequestBody) (*APIResponse, error)
Delete invokes a DELETE request, returning an APIResponse
func (*APIConnection) Get ¶
func (c *APIConnection) Get(resource string, parameters APIRequestParameters) (*APIResponse, error)
Get invokes a GET request, returning an APIResponse
func (*APIConnection) Invoke ¶
func (c *APIConnection) Invoke(request APIRequest) (*APIResponse, error)
Invoke invokes a request, returning an APIResponse
func (*APIConnection) InvokeRequest ¶
func (c *APIConnection) InvokeRequest(req *http.Request) (*APIResponse, error)
InvokeRequest invokes a request, returning an APIResponse
func (*APIConnection) NewRequest ¶
func (c *APIConnection) NewRequest(request APIRequest) (*http.Request, error)
NewRequest generates a new Request from given parameters
func (*APIConnection) Patch ¶
func (c *APIConnection) Patch(resource string, body RequestBody) (*APIResponse, error)
Patch invokes a PATCH request, returning an APIResponse
func (*APIConnection) Post ¶
func (c *APIConnection) Post(resource string, body RequestBody) (*APIResponse, error)
Post invokes a POST request, returning an APIResponse
func (*APIConnection) Put ¶
func (c *APIConnection) Put(resource string, body RequestBody) (*APIResponse, error)
Put invokes a PUT request, returning an APIResponse
type APIKeyCredentials ¶
type APIKeyCredentials struct {
APIKey string
}
func (*APIKeyCredentials) GetAuthHeaders ¶
func (c *APIKeyCredentials) GetAuthHeaders() AuthHeaders
GetAuthHeaders returns the Authorization header for API key
type APIRequest ¶
type APIRequest struct { Method string Resource string Body RequestBody Parameters APIRequestParameters }
type APIRequestBodyDefaultValidator ¶
type APIRequestBodyDefaultValidator struct { }
APIRequestBodyDefaultValidator provides convenience method Validate() for validating a struct/item, utilising the validator.v9 package
func (*APIRequestBodyDefaultValidator) Validate ¶
func (a *APIRequestBodyDefaultValidator) Validate(v interface{}) *ValidationError
Validate performs validation on item v using the validator.v9 package
type APIRequestFiltering ¶
type APIRequestFiltering struct { Property string Operator APIRequestFilteringOperator Value []string }
type APIRequestFilteringOperator ¶
type APIRequestFilteringOperator int
const ( // EQOperator - equals EQOperator APIRequestFilteringOperator = iota // LKOperator - like LKOperator // GTOperator - greater than GTOperator // LTOperator - less than LTOperator // INOperator - in set INOperator // NEQOperator - not equal NEQOperator // NINOperator - not in set NINOperator // NLKOperator - not like NLKOperator )
func ParseOperator ¶
func ParseOperator(o string) (APIRequestFilteringOperator, error)
ParseOperator attempts to parse an operator from string
func (APIRequestFilteringOperator) String ¶
func (o APIRequestFilteringOperator) String() string
type APIRequestPagination ¶
type APIRequestParameters ¶
type APIRequestParameters struct { Pagination APIRequestPagination Sorting APIRequestSorting Filtering []APIRequestFiltering }
APIRequestParameters holds a collection of supported API request parameters
func (*APIRequestParameters) WithFilter ¶
func (p *APIRequestParameters) WithFilter(filter APIRequestFiltering) *APIRequestParameters
WithFilter is a fluent method for adding a filter to request parameters
func (*APIRequestParameters) WithFilters ¶
func (p *APIRequestParameters) WithFilters(filters []APIRequestFiltering) *APIRequestParameters
WithFilters is a fluent method for adding a set of filters to request parameters
func (*APIRequestParameters) WithPagination ¶
func (p *APIRequestParameters) WithPagination(pagination APIRequestPagination) *APIRequestParameters
WithPagination is a fluent method for adding pagination to request parameters
func (*APIRequestParameters) WithSorting ¶
func (p *APIRequestParameters) WithSorting(sorting APIRequestSorting) *APIRequestParameters
WithSorting is a fluent method for adding sorting to request parameters
type APIRequestSorting ¶
type APIResponse ¶
APIResponse represents the base API response
func (*APIResponse) DeserializeResponseBody ¶
func (r *APIResponse) DeserializeResponseBody(out interface{}) error
DeserializeResponseBody deserializes the API response body and stores the result in parameter out
func (*APIResponse) HandleResponse ¶
func (r *APIResponse) HandleResponse(codes []int, respBody ResponseBody) error
func (*APIResponse) ValidateStatusCode ¶
func (r *APIResponse) ValidateStatusCode(codes []int, respBody ResponseBody) error
ValidateStatusCode validates the API response
type APIResponseBody ¶
type APIResponseBody struct { Metadata APIResponseMetadata `json:"meta"` Error []APIResponseError `json:"errors"` Message string `json:"message"` }
APIResponseBody represents the base API response body
func (*APIResponseBody) ErrorString ¶
func (a *APIResponseBody) ErrorString() string
ErrorString returns a formatted error string for API response
func (*APIResponseBody) Pagination ¶
func (a *APIResponseBody) Pagination() APIResponseMetadataPagination
TotalPages returns amount of pages for API response
type APIResponseError ¶
type APIResponseError struct { Title string `json:"title"` Detail string `json:"detail"` Status int `json:"status"` Source string `json:"source"` }
APIResponseError represents an API response error
func (*APIResponseError) Error ¶
func (a *APIResponseError) Error() error
func (*APIResponseError) String ¶
func (a *APIResponseError) String() string
type APIResponseMetadata ¶
type APIResponseMetadata struct {
Pagination APIResponseMetadataPagination `json:"pagination"`
}
APIResponseMetadata represents the API response metadata
type APIResponseMetadataPagination ¶
type APIResponseMetadataPagination struct { Total int `json:"total"` Count int `json:"count"` PerPage int `json:"per_page"` TotalPages int `json:"total_pages"` Links APIResponseMetadataPaginationLinks `json:"links"` }
APIResponseMetadataPagination represents the API response pagination data
type APIResponseMetadataPaginationLinks ¶
type APIResponseMetadataPaginationLinks struct { Next string `json:"next"` Previous string `json:"previous"` First string `json:"first"` Last string `json:"last"` }
APIResponseMetadataPaginationLinks represents the links returned within the API response pagination data
type AuthHeaders ¶
AuthHeaders is a string map of authorization headers
type Connection ¶
type Connection interface { Get(resource string, parameters APIRequestParameters) (*APIResponse, error) Post(resource string, body RequestBody) (*APIResponse, error) Put(resource string, body RequestBody) (*APIResponse, error) Patch(resource string, body RequestBody) (*APIResponse, error) Delete(resource string, body RequestBody) (*APIResponse, error) Invoke(request APIRequest) (*APIResponse, error) }
type Credentials ¶
type Credentials interface {
GetAuthHeaders() AuthHeaders
}
type RequestAll ¶
type RequestAll struct {
GetNext func(parameters APIRequestParameters) (ResponseBody, error)
}
func (*RequestAll) Invoke ¶
func (r *RequestAll) Invoke(parameters APIRequestParameters) error
type RequestBody ¶
type RequestBody interface { Validatable }
type ResponseBody ¶
type ResponseBody interface { ErrorString() string Pagination() APIResponseMetadataPagination }
type Validatable ¶
type Validatable interface {
Validate() *ValidationError
}
type ValidationError ¶
type ValidationError struct {
Message string
}
func NewValidationError ¶
func NewValidationError(msg string) *ValidationError
func (*ValidationError) Error ¶
func (e *ValidationError) Error() string