httputils

package
v1.25.4 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2024 License: Apache-2.0 Imports: 19 Imported by: 6

Documentation

Overview

Package httputils contains HTTP-related utility functions.

Index

Constants

This section is empty.

Variables

View Source
var (
	// RuleIDValidator points to a Regexp expression that matches any
	// string that has alphanumeric characters separated by at least one dot
	// (".")
	RuleIDValidator = regexp.MustCompile(`^[a-zA-Z_0-9.]+$`)

	// RuleSelectorValidator points to a Regexp expression that matches any
	// string that has alphanumeric characters separated by at least one dot
	// (".") before a vertical line ("|"), followed by only characters,
	// numbers, or underscores ("_")
	RuleSelectorValidator = regexp.MustCompile(`[a-zA-Z_0-9]+\.[a-zA-Z_0-9.]+\|[a-zA-Z_0-9]+$`)
)

Functions

func CheckPermissions added in v1.6.2

func CheckPermissions(writer http.ResponseWriter, request *http.Request, orgID ctypes.OrgID, auth bool) bool

CheckPermissions checks whether user with a provided token(from request) can access current organization and handled the error on negative result by logging the error and writing a corresponding http response

func CreateOpenAPIHandler added in v1.5.1

func CreateOpenAPIHandler(filePath string, debug, cacheFile bool) func(writer http.ResponseWriter, request *http.Request)

CreateOpenAPIHandler creates a handler for a server to send OpenAPI file. Optionally, you can turn on or off debug to filter out debug endpoints. Optionally, you can turn on caching by setting cacheFile to true, then you will have to restart a server on each file change

func FilterOutDebugMethods added in v1.5.1

func FilterOutDebugMethods(openAPIFileContent string) (string, error)

FilterOutDebugMethods returns the same openapi spec, but without endpoints tagged as debug.

func GetRouterParam added in v1.5.0

func GetRouterParam(request *http.Request, paramName string) (string, error)

GetRouterParam retrieves parameter from URL like `/organization/{org_id}`

func GetRouterPositiveIntParam added in v1.5.0

func GetRouterPositiveIntParam(request *http.Request, paramName string) (uint64, error)

GetRouterPositiveIntParam retrieves parameter from URL like `/organization/{org_id}` and check it for being valid and positive integer, otherwise returns error

func HandleOrgIDError added in v1.6.2

func HandleOrgIDError(writer http.ResponseWriter, err error)

HandleOrgIDError logs org id error and writes corresponding http response

func LogRequest added in v1.3.0

func LogRequest(nextHandler http.Handler) http.Handler

LogRequest - middleware for logging requests

func MakeURLToEndpoint

func MakeURLToEndpoint(apiPrefix, endpoint string, args ...interface{}) string

MakeURLToEndpoint creates URL to endpoint, use constants from file endpoints.go

func MakeURLToEndpointMap added in v1.2.3

func MakeURLToEndpointMap(apiPrefix, endpoint string, args map[string]interface{}) string

MakeURLToEndpointMap creates URL to endpoint using arguments in map, use constants from file endpoints.go

func MakeURLToEndpointMapString added in v1.2.3

func MakeURLToEndpointMapString(apiPrefix, endpoint string, args map[string]string) string

MakeURLToEndpointMapString creates URL to endpoint using arguments in map in string format, use constants from file endpoints.go

func ReadAndTrimRuleSelector added in v1.23.3

func ReadAndTrimRuleSelector(writer http.ResponseWriter, request *http.Request) (ctypes.RuleSelector, bool)

ReadAndTrimRuleSelector retrieves the rule selector (rule_id|error_key) from request's url or writes an error to writer. The function returns the selector WITHOUT '.report' and a bool indicating if retrieval was successful.

func ReadClusterListFromBody added in v1.6.5

func ReadClusterListFromBody(writer http.ResponseWriter, request *http.Request) ([]string, bool)

ReadClusterListFromBody retrieves list of clusters from request's body if it's not possible, it writes http error to the writer and returns false

func ReadClusterListFromPath added in v1.6.5

func ReadClusterListFromPath(writer http.ResponseWriter, request *http.Request) ([]string, bool)

ReadClusterListFromPath retrieves list of clusters from request's path if it's not possible, it writes http error to the writer and returns false

func ReadClusterName

func ReadClusterName(writer http.ResponseWriter, request *http.Request) (ctypes.ClusterName, bool)

ReadClusterName retrieves cluster name from request if it's not possible, it writes http error to the writer and returns false

func ReadClusterNames added in v1.5.0

func ReadClusterNames(writer http.ResponseWriter, request *http.Request) ([]ctypes.ClusterName, bool)

ReadClusterNames does the same as `readClusterName`, except for multiple clusters.

func ReadErrorKey added in v1.4.1

func ReadErrorKey(writer http.ResponseWriter, request *http.Request) (ctypes.ErrorKey, bool)

ReadErrorKey retrieves error key from request's url or writes an error to writer. The function returns an error key and a bool indicating if it was successful.

func ReadOrganizationID added in v1.6.2

func ReadOrganizationID(writer http.ResponseWriter, request *http.Request, auth bool) (ctypes.OrgID, bool)

ReadOrganizationID retrieves organization id from request if it's not possible, it writes http error to the writer and returns false

func ReadOrganizationIDs added in v1.6.2

func ReadOrganizationIDs(writer http.ResponseWriter, request *http.Request) ([]ctypes.OrgID, bool)

ReadOrganizationIDs does the same as `readOrganizationID`, except for multiple organizations.

func ReadRuleID added in v1.4.1

func ReadRuleID(writer http.ResponseWriter, request *http.Request) (ctypes.RuleID, bool)

ReadRuleID retrieves rule id from request's url or writes an error to writer. The function returns a rule id and a bool indicating if it was successful.

func ReadRuleSelector added in v1.21.1

func ReadRuleSelector(writer http.ResponseWriter, request *http.Request) (ctypes.RuleSelector, bool)

ReadRuleSelector retrieves the rule selector (rule_id|error_key) from request's url or writes an error to writer. The function returns the selector and a bool indicating if it was successful.

func ReplaceParamsInEndpointAndTrimLeftSlash

func ReplaceParamsInEndpointAndTrimLeftSlash(endpoint, replacer string) string

ReplaceParamsInEndpointAndTrimLeftSlash replaces params in endpoint and trims left slash

func SendRequest added in v1.24.1

func SendRequest(req *http.Request, timeout time.Duration) ([]byte, error)

SendRequest sends the given request, reads the body and handles related errors

func SetHTTPPrefix added in v1.24.1

func SetHTTPPrefix(originalURL string) string

SetHTTPPrefix adds HTTP prefix if it is not already present in the given string

func SplitRequestParamArray added in v1.6.2

func SplitRequestParamArray(arrayParam string) []string

SplitRequestParamArray takes a single HTTP request parameter and splits it into a slice of strings. This assumes that the parameter is a comma-separated array.

func ValidateClusterName added in v1.6.2

func ValidateClusterName(clusterName string) (ctypes.ClusterName, error)

ValidateClusterName checks that the cluster name is a valid UUID. Converted cluster name is returned if everything is okay, otherwise an error is returned.

Types

This section is empty.

Jump to

Keyboard shortcuts

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