runtime

package
v0.0.0-...-bfab8ab Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2023 License: BSD-3-Clause Imports: 12 Imported by: 10

Documentation

Index

Examples

Constants

View Source
const (
	StatusName     = "status"
	StatusCodeName = "code"
	TraceName      = "trace"
	RequestIdName  = "request-id"
	ErrorsName     = "errors"
)
View Source
const (
	OriginRegionKey     = "ORIGIN-REGION"
	OriginZoneKey       = "ORIGIN-ZONE"
	OriginSubZoneKey    = "ORIGIN-SUB-ZONE"
	OriginServiceKey    = "ORIGIN-SERVICE"
	OriginInstanceIdKey = "ORIGIN-INSTANCE-ID"
)
View Source
const (
	StatusInvalidContent  = int(90) // Content is not available, is nil, or is of the wrong type, usually found via unmarshalling
	StatusIOError         = int(91) // I/O operation failed
	StatusJsonDecodeError = int(92) // Json decoding failed
	StatusJsonEncodeError = int(93) // Json decoding failed
	StatusNotProvided     = int(94) // No status is available
	StatusRateLimited     = int(95) // Rate limited
	StatusNotStarted      = int(96) // Not started
	StatusHaveContent     = int(97) // Content is available

	StatusInvalidArgument  = 3 //codes.InvalidArgument    // The client specified an invalid argument. Note that this differs from FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name).
	StatusDeadlineExceeded = 4 //codes.DeadlineExceeded   // The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long

)
View Source
const (
	EnvPrefix = "$"
)
View Source
const (
	NilDuration = time.Duration(-1)
)
View Source
const (
	XRequestId = "x-request-id"
)

Variables

View Source
var (
	PkgUri = reflect.TypeOf(any(pkg{})).PkgPath()
)

Functions

func ContextWithValue

func ContextWithValue(ctx context.Context, key any, val any) context.Context

ContextWithValue - create a new context with a value, updating the context if it is a Proxy context

func DefaultErrorFormatter

func DefaultErrorFormatter(s *Status) string

func DoHandlerProxy

func DoHandlerProxy(ctx context.Context) func(ctx any, r *http.Request, body any) (any, *Status)

func EnvStr

func EnvStr() string

func FormatErrors

func FormatErrors(name string, errs []error) string

func FormatTrace

func FormatTrace(name string, trace []string) string

func GetOrCreateRequestId

func GetOrCreateRequestId(t any) string

func IsDebugEnvironment

func IsDebugEnvironment() bool

func IsErrors

func IsErrors(errs []error) bool

IsErrors - determine if there are errors in an []error

func IsNil

func IsNil(a any) bool

IsNil - determine if the interface{} is nil, or if it holds a nil pointer

Example
var i any
var p *int

fmt.Printf("test: IsNil(nil) -> %v\n", IsNil(nil))
fmt.Printf("test: IsNil(i) -> %v\n", IsNil(i))
fmt.Printf("test: IsNil(pi) -> %v\n", IsNil(p))
Output:

test: IsNil(nil) -> true
test: IsNil(i) -> true
test: IsNil(pi) -> true

func IsProdEnvironment

func IsProdEnvironment() bool

func IsProxyable

func IsProxyable(ctx context.Context) ([]any, bool)

IsProxyable - determine if the context is a ProxyContext, and return proxies

func IsStageEnvironment

func IsStageEnvironment() bool

func IsTestEnvironment

func IsTestEnvironment() bool

func LookupEnv

func LookupEnv(name string) (string, error)
Example
name := ""

s, err := LookupEnv(name)
fmt.Printf("test: LookupEnv(%v) -> [err:%v][%v]\n", name, err, s)

s, err = LookupEnv("$")
fmt.Printf("test: LookupEnv(%v) -> [err:%v][%v]\n", name, err, s)

os.Setenv("RUNTIME", "DEV")
s, err = LookupEnv("$RUNTIME")
fmt.Printf("test: LookupEnv(%v) -> [err:%v][%v]\n", name, err, s)
Output:

test: LookupEnv() -> [err:invalid argument : LookupEnv() template variable is invalid: ][]
test: LookupEnv() -> [err:<nil>][]
test: LookupEnv() -> [err:<nil>][DEV]

func NewInvalidBodyTypeError

func NewInvalidBodyTypeError(t any) error

func NewProxyContext

func NewProxyContext(ctx context.Context, proxy any) context.Context

NewProxyContext - create a new Context interface, containing a proxy

func NewRequestContext

func NewRequestContext(req *http.Request) context.Context

NewRequestContext - creates a new Context with a request id from the request headers

func NewRequestIdContext

func NewRequestIdContext(ctx context.Context, requestId string) context.Context

NewRequestIdContext - creates a new Context with a request id

func OriginInstanceId

func OriginInstanceId() string

func OriginRegion

func OriginRegion() string

func OriginService

func OriginService() string

func OriginString

func OriginString() string

func OriginSubZone

func OriginSubZone() string

func OriginUrn

func OriginUrn(nid string, nss, resource string) string

func OriginZone

func OriginZone() string

func PathFromUri

func PathFromUri(rawUri string) string

PathFromUri - return a path from a scheme less uri

func RequestId

func RequestId(t any) string

func RequestIdFromContext

func RequestIdFromContext(ctx any) string

RequestIdFromContext - return the requestId from a context

func SetFormatOutput

func SetFormatOutput(fn FormatOutput)

func SetOrigin

func SetOrigin(region, zone, subZone, service, instanceId string)

func SetProdEnvironment

func SetProdEnvironment()

func SetStageEnvironment

func SetStageEnvironment()

func SetTestEnvironment

func SetTestEnvironment()

Types

type BypassError

type BypassError struct{}

BypassError - bypass error handler

func (BypassError) Handle

func (h BypassError) Handle(s *Status, _ string, _ string) *Status

func (BypassError) HandleDEP

func (h BypassError) HandleDEP(requestId string, _ string, errs ...error) *Status

type DoHandler

type DoHandler func(ctx any, r *http.Request, body any) (any, *Status)

DoHandler - function type for a Do handler

type ErrorHandler

type ErrorHandler interface {
	Handle(s *Status, requestId string, callerLocation string) *Status
}

ErrorHandler - template parameter error handler interface Handle(requestId string, location string, errs ...error) *Status

type FormatOutput

type FormatOutput func(s *Status) string

type HttpHandler

type HttpHandler func(ctx context.Context, w http.ResponseWriter, r *http.Request) *Status

HttpHandler - function type for HTTP handling

type LogError

type LogError struct{}

LogError - log error handler

func (LogError) Handle

func (h LogError) Handle(s *Status, requestId string, callerLocation string) *Status

func (LogError) HandleDEP

func (h LogError) HandleDEP(requestId string, location string, errs ...error) *Status

type Nillable

type Nillable *struct{}

type Origin

type Origin struct {
	Region     string
	Zone       string
	SubZone    string
	Service    string
	InstanceId string
}

Origin - struct for origin information

type PostHandler

type PostHandler func(ctx any, r *http.Request, body any) (any, *Status)

PostHandler - function type for a Post handler

type Status

type Status struct {
	// contains filtered or unexported fields
}

Status - struct for status data

func NewStatus

func NewStatus(code int) *Status

NewStatus - new Status from a code

func NewStatusError

func NewStatusError(code int, location string, errs ...error) *Status

NewStatusError - new Status from a code, location, and optional errors

func NewStatusOK

func NewStatusOK() *Status

NewStatusOK - new OK status

func (*Status) AddLocation

func (s *Status) AddLocation(location string) *Status

func (*Status) Code

func (s *Status) Code() int

Code - functions

func (*Status) Content

func (s *Status) Content() any

func (*Status) ContentString

func (s *Status) ContentString() string

func (*Status) CopyHeader

func (s *Status) CopyHeader(header http.Header) *Status

func (*Status) Description

func (s *Status) Description() string

func (*Status) Duration

func (s *Status) Duration() time.Duration

Duration - get duration

func (*Status) Errors

func (s *Status) Errors() []error

func (*Status) ErrorsHandled

func (s *Status) ErrorsHandled() bool

ErrorsHandled - determine errors status

func (*Status) FirstError

func (s *Status) FirstError() error

func (*Status) Header

func (s *Status) Header() http.Header

Header - header map

func (*Status) Http

func (s *Status) Http() int

func (*Status) IsContent

func (s *Status) IsContent() bool

IsContent - content

func (*Status) IsErrors

func (s *Status) IsErrors() bool

func (*Status) Location

func (s *Status) Location() []string

Location - location

func (*Status) NotFound

func (s *Status) NotFound() bool

func (*Status) OK

func (s *Status) OK() bool

func (*Status) RemoveContent

func (s *Status) RemoveContent()

func (*Status) RequestId

func (s *Status) RequestId() string

RequestId - request id

func (*Status) SetCode

func (s *Status) SetCode(code int) *Status

func (*Status) SetContent

func (s *Status) SetContent(content any, jsonContent bool) *Status

func (*Status) SetContentLocation

func (s *Status) SetContentLocation(location string) *Status

func (*Status) SetContentType

func (s *Status) SetContentType(str string) *Status
func (s *Status) SetJsonContent(content any) *Status {
	if content == nil {
		return s
	}
	s.content = content
	s.SetContentType(ContentTypeJson)
	return s
}

func (*Status) SetContentTypeAndLocation

func (s *Status) SetContentTypeAndLocation(location string) *Status

func (*Status) SetDuration

func (s *Status) SetDuration(duration time.Duration) *Status

func (*Status) SetErrorsHandled

func (s *Status) SetErrorsHandled()

func (*Status) SetHeader

func (s *Status) SetHeader(header http.Header, keys ...string) *Status

func (*Status) SetRequestId

func (s *Status) SetRequestId(requestId any) *Status

func (*Status) String

func (s *Status) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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