apiutil

package
v0.28.3 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2025 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OffsetKey   = "offset"
	LimitKey    = "limit"
	NameKey     = "name"
	OrderKey    = "order"
	DirKey      = "dir"
	MetadataKey = "metadata"
	IDKey       = "id"
	EmailKey    = "email"
	PayloadKey  = "payload"

	NameOrder       = "name"
	IDOrder         = "id"
	AscDir          = "asc"
	DescDir         = "desc"
	ContentTypeJSON = "application/json"

	DefOffset = 0
	DefLimit  = 10
)
View Source
const BearerPrefix = "Bearer "

BearerPrefix represents the token prefix for Bearer authentication scheme.

View Source
const ThingPrefix = "Thing "

ThingPrefix represents the key prefix for Thing authentication scheme.

Variables

View Source
var (
	// ErrBearerToken indicates missing or invalid bearer user token.
	ErrBearerToken = errors.New("missing or invalid bearer user token")

	// ErrBearerKey indicates missing or invalid bearer entity key.
	ErrBearerKey = errors.New("missing or invalid bearer entity key")

	// ErrMissingGroupID indicates missing group ID.
	ErrMissingGroupID = errors.New("missing group id")

	// ErrMissingOrgID indicates missing org ID.
	ErrMissingOrgID = errors.New("missing org id")

	// ErrMissingThingID indicates missing thing ID.
	ErrMissingThingID = errors.New("missing thing id")

	// ErrMissingProfileID indicates missing profile ID.
	ErrMissingProfileID = errors.New("missing profile id")

	// ErrMissingMemberID indicates missing member ID.
	ErrMissingMemberID = errors.New("missing member id")

	// ErrMissingWebhookID indicates missing webhook ID.
	ErrMissingWebhookID = errors.New("missing webhook id")

	// ErrMissingNotifierID indicates missing notifier ID.
	ErrMissingNotifierID = errors.New("missing notifier id")

	// ErrMissingAlarmID indicates missing alarm ID.
	ErrMissingAlarmID = errors.New("missing alarm id")

	// ErrMissingRuleID indicates missing rule ID.
	ErrMissingRuleID = errors.New("missing rule id")

	// ErrMissingUserID indicates missing user ID.
	ErrMissingUserID = errors.New("missing user id")

	// ErrMissingRole indicates missing role.
	ErrMissingRole = errors.New("missing role")

	// ErrMissingObject indicates missing object.
	ErrMissingObject = errors.New("missing object")

	// ErrMissingKeyID indicates missing ID of key.
	ErrMissingKeyID = errors.New("missing key ID")

	// ErrInvalidSubject indicates invalid subject.
	ErrInvalidSubject = errors.New("invalid subject")

	// ErrInvalidAction indicates invalid action.
	ErrInvalidAction = errors.New("invalid action")

	// ErrInvalidAuthKey indicates invalid auth key.
	ErrInvalidAuthKey = errors.New("invalid auth key")

	// ErrInvalidIDFormat indicates an invalid ID format.
	ErrInvalidIDFormat = errors.New("invalid id format provided")

	// ErrNameSize indicates that name size exceeds the max.
	ErrNameSize = errors.New("invalid name size")

	// ErrEmailSize indicates that email size exceeds the max.
	ErrEmailSize = errors.New("invalid email size")

	// ErrInvalidStatus indicates an invalid user account status.
	ErrInvalidStatus = errors.New("invalid user account status")

	// ErrLimitSize indicates that an invalid limit.
	ErrLimitSize = errors.New("invalid limit size")

	// ErrOffsetSize indicates an invalid offset.
	ErrOffsetSize = errors.New("invalid offset size")

	// ErrInvalidOrder indicates an invalid list order.
	ErrInvalidOrder = errors.New("invalid list order provided")

	// ErrInvalidDirection indicates an invalid list direction.
	ErrInvalidDirection = errors.New("invalid list direction provided")

	// ErrEmptyList indicates that entity data is empty.
	ErrEmptyList = errors.New("empty list provided")

	// ErrMissingCertID indicates missing cert ID.
	ErrMissingCertID = errors.New("missing cert id")

	// ErrMissingCertData indicates missing cert data (ttl, key_type or key_bits).
	ErrMissingCertData = errors.New("missing certificate data")

	// ErrInvalidTopic indicates an invalid subscription topic.
	ErrInvalidTopic = errors.New("invalid Subscription topic")

	// ErrInvalidContact indicates an invalid contact.
	ErrInvalidContact = errors.New("invalid contact")

	// ErrMissingEmail indicates missing email.
	ErrMissingEmail = errors.New("missing email")

	// ErrMissingHost indicates missing host.
	ErrMissingHost = errors.New("missing host")

	// ErrMissingPass indicates missing password.
	ErrMissingPass = errors.New("missing password")

	// ErrMissingConfPass indicates missing conf password.
	ErrMissingConfPass = errors.New("missing conf password")

	// ErrInvalidResetPass indicates an invalid reset password.
	ErrInvalidResetPass = errors.New("invalid reset password")

	// ErrInvalidComparator indicates an invalid comparator.
	ErrInvalidComparator = errors.New("invalid comparator")

	// ErrInvalidAPIKey indicates an invalid API key type.
	ErrInvalidAPIKey = errors.New("invalid api key type")

	// ErrMaxLevelExceeded indicates an invalid group level.
	ErrMaxLevelExceeded = errors.New("invalid group level (should be lower than 5)")

	// ErrUnsupportedContentType indicates unacceptable or lack of Content-Type
	ErrUnsupportedContentType = errors.New("unsupported content type")

	// ErrInvalidQueryParams indicates invalid query parameters
	ErrInvalidQueryParams = errors.New("invalid query parameters")

	// ErrNotFoundParam indicates that the parameter was not found in the query
	ErrNotFoundParam = errors.New("parameter not found in the query")

	// ErrMalformedEntity indicates a malformed entity specification.
	ErrMalformedEntity = errors.New("malformed entity specification")

	// ErrInvalidRole indicates an invalid role.
	ErrInvalidRole = errors.New("invalid role")

	// ErrMissingConditionField indicates a missing condition field
	ErrMissingConditionField = errors.New("missing condition field")

	// ErrMissingConditionOperator indicates a missing condition operator
	ErrMissingConditionOperator = errors.New("missing condition operator")

	// ErrMissingConditionThreshold indicates a missing condition threshold
	ErrMissingConditionThreshold = errors.New("missing condition threshold")

	// ErrInvalidActionType indicates an invalid action type
	ErrInvalidActionType = errors.New("missing or invalid action type")

	// ErrMissingActionID indicates a missing action id
	ErrMissingActionID = errors.New("missing action id")

	// ErrMissingPublisherID indicated a missing publisher id
	ErrMissingPublisherID = errors.New("missing publisher id")
)

Errors defined in this file are used by the LoggingErrorEncoder decorator to distinguish and log API request validation errors and avoid that service errors are logged twice.

Functions

func EncodeError added in v0.26.0

func EncodeError(err error, w http.ResponseWriter)

func ExtractBearerToken

func ExtractBearerToken(r *http.Request) string

ExtractBearerToken returns value of the bearer token. If there is no bearer token - an empty value is returned.

func ExtractThingKey

func ExtractThingKey(r *http.Request) string

ExtractThingKey returns value of the thing key. If there is no thing key - an empty value is returned.

func LoggingErrorEncoder

func LoggingErrorEncoder(logger logger.Logger, enc kithttp.ErrorEncoder) kithttp.ErrorEncoder

LoggingErrorEncoder is a go-kit error encoder logging decorator.

func ReadBoolQuery

func ReadBoolQuery(r *http.Request, key string, def bool) (bool, error)

ReadBoolQuery reads boolean query parameters in a given http request

func ReadFloatQuery

func ReadFloatQuery(r *http.Request, key string, def float64) (float64, error)

ReadFloatQuery reads the value of float64 http query parameters for a given key

func ReadLimitQuery

func ReadLimitQuery(r *http.Request, key string, def uint64) (uint64, error)

ReadLimitQuery reads the value of limit http query parameters

func ReadMetadataQuery

func ReadMetadataQuery(r *http.Request, key string, def map[string]interface{}) (map[string]interface{}, error)

ReadMetadataQuery reads the value of json http query parameters for a given key

func ReadStringQuery

func ReadStringQuery(r *http.Request, key string, def string) (string, error)

ReadStringQuery reads the value of string http query parameters for a given key

func ReadUintQuery

func ReadUintQuery(r *http.Request, key string, def uint64) (uint64, error)

ReadUintQuery reads the value of uint64 http query parameters for a given key

func ValidatePageMetadata added in v0.26.0

func ValidatePageMetadata(pm PageMetadata, maxLimitSize, maxNameSize int) error

func ValidateUUID added in v0.26.0

func ValidateUUID(extID string) (err error)

func WriteErrorResponse added in v0.26.0

func WriteErrorResponse(err error, w http.ResponseWriter)

Types

type ErrorRes

type ErrorRes struct {
	Err string `json:"error"`
}

ErrorRes represents the HTTP error response body.

type PageMetadata added in v0.26.0

type PageMetadata struct {
	Total    uint64
	Offset   uint64                 `json:"offset,omitempty"`
	Limit    uint64                 `json:"limit,omitempty"`
	Name     string                 `json:"name,omitempty"`
	Order    string                 `json:"order,omitempty"`
	Dir      string                 `json:"dir,omitempty"`
	Metadata map[string]interface{} `json:"metadata,omitempty"`
	Email    string                 `json:"email,omitempty"`
	Payload  map[string]interface{} `json:"payload,omitempty"`
}

PageMetadata contains page metadata that helps navigation.

func BuildPageMetadata added in v0.26.0

func BuildPageMetadata(r *http.Request) (PageMetadata, error)

type Response

type Response interface {
	// Code returns HTTP response code.
	Code() int

	// Headers returns map of HTTP headers with their values.
	Headers() map[string]string

	// Empty indicates if HTTP response has content.
	Empty() bool
}

Response contains HTTP response specific methods.

Jump to

Keyboard shortcuts

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