faces

package
v2.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2025 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewColorServer

func NewColorServer(provider *ColorProvider) *colorServer

func StartPrometheusServer

func StartPrometheusServer()

Start the HTTP server for Prometheus metrics.

Types

type BaseHTTPServer

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

func NewBaseHTTPServer

func NewBaseHTTPServer(provider *BaseProvider) *BaseHTTPServer

func (*BaseHTTPServer) StandardError

func (bsrv *BaseHTTPServer) StandardError(w http.ResponseWriter, r *http.Request, statusCode int, responseBody string)

func (*BaseHTTPServer) StandardResponse

func (bsrv *BaseHTTPServer) StandardResponse(w http.ResponseWriter, r *http.Request, response ProviderResponse)

func (*BaseHTTPServer) Start

func (bsrv *BaseHTTPServer) Start(addr string) error

type BaseProvider

type BaseProvider struct {
	Name string // Name of this kind of provider
	Key  string // Descriptive string for this provider instance
	// contains filtered or unexported fields
}

func (*BaseProvider) CheckRequestStatus

func (bprv *BaseProvider) CheckRequestStatus() *BaseRequestStatus

func (*BaseProvider) CheckUnlatch

func (bprv *BaseProvider) CheckUnlatch(now time.Time)

CheckUnlatch checks to see if we should unlatch the provider.

func (*BaseProvider) Debugf

func (bprv *BaseProvider) Debugf(format string, args ...interface{})

func (*BaseProvider) DelayIfNeeded

func (bprv *BaseProvider) DelayIfNeeded()

DelayIfNeeded delays if there are delay buckets set.

func (*BaseProvider) ErrorFraction

func (bprv *BaseProvider) ErrorFraction() int

func (*BaseProvider) GetUserHeaderName

func (bprv *BaseProvider) GetUserHeaderName() string

func (*BaseProvider) HandleRequest

func (bprv *BaseProvider) HandleRequest(start time.Time, prvReq *ProviderRequest) ProviderResponse

func (*BaseProvider) Infof

func (bprv *BaseProvider) Infof(format string, args ...interface{})

func (*BaseProvider) IsLatched

func (bprv *BaseProvider) IsLatched() bool

func (*BaseProvider) Lock

func (bprv *BaseProvider) Lock()

func (*BaseProvider) SetDebug

func (bprv *BaseProvider) SetDebug(debug bool)

func (*BaseProvider) SetErrorFraction

func (bprv *BaseProvider) SetErrorFraction(fraction int)

func (*BaseProvider) SetGetHandler

func (bprv *BaseProvider) SetGetHandler(handler ProviderGetHandler)

SetGetHandler sets the function that will be called to get the data for a given provider request.

func (*BaseProvider) SetHTTPGetHandler

func (bprv *BaseProvider) SetHTTPGetHandler(handler HTTPGetHandler)

SetHTTPGetHandler sets the function that will be called to handle HTTP GET requests. This is lower-level than SetGetHandler; the default HTTP GET handler calls the provider-level Get handler (set with SetGetHandler) for requests that don't trip the error fraction or get rate limited.

func (*BaseProvider) SetLatched

func (bprv *BaseProvider) SetLatched(latched bool)

func (*BaseProvider) SetLogger

func (bprv *BaseProvider) SetLogger(logger *slog.Logger)

func (*BaseProvider) SetPostHook

func (bprv *BaseProvider) SetPostHook(hook ProviderHook)

func (*BaseProvider) SetPreHook

func (bprv *BaseProvider) SetPreHook(hook ProviderHook)

func (*BaseProvider) SetUpdater

func (bprv *BaseProvider) SetUpdater(updater ProviderUpdater)

func (*BaseProvider) SetupBasicsFromEnvironment

func (bprv *BaseProvider) SetupBasicsFromEnvironment()

func (*BaseProvider) SetupFromEnvironment

func (bprv *BaseProvider) SetupFromEnvironment()

func (*BaseProvider) Unlock

func (bprv *BaseProvider) Unlock()

func (*BaseProvider) Warnf

func (bprv *BaseProvider) Warnf(format string, args ...interface{})

type BaseRequestStatus

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

func (*BaseRequestStatus) IsErrored

func (rstat *BaseRequestStatus) IsErrored() bool

func (*BaseRequestStatus) IsLatched

func (rstat *BaseRequestStatus) IsLatched() bool

func (*BaseRequestStatus) IsRateLimited

func (rstat *BaseRequestStatus) IsRateLimited() bool

func (*BaseRequestStatus) Message

func (rstat *BaseRequestStatus) Message() string

func (*BaseRequestStatus) StatusCode

func (rstat *BaseRequestStatus) StatusCode() int

type ColorProvider

type ColorProvider struct {
	BaseProvider
	// contains filtered or unexported fields
}

func NewColorProviderFromEnvironment

func NewColorProviderFromEnvironment() *ColorProvider

func (*ColorProvider) Get

func (cprv *ColorProvider) Get(prvReq *ProviderRequest) ProviderResponse

type FaceProvider

type FaceProvider struct {
	BaseProvider
	// contains filtered or unexported fields
}

func NewFaceProviderFromEnvironment

func NewFaceProviderFromEnvironment() *FaceProvider

func (*FaceProvider) Get

func (sprv *FaceProvider) Get(prvReq *ProviderRequest) ProviderResponse

type FaceResponse

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

type GUIProvider

type GUIProvider struct {
	BaseProvider
	// contains filtered or unexported fields
}

func NewGUIProviderFromEnvironment

func NewGUIProviderFromEnvironment() *GUIProvider

func (*GUIProvider) Get

func (gprv *GUIProvider) Get(prvReq *ProviderRequest) ProviderResponse

This should never ever be called.

func (*GUIProvider) HTTPGetHandler

func (gprv *GUIProvider) HTTPGetHandler(w http.ResponseWriter, r *http.Request)

type GUIServer

type GUIServer struct {
	*BaseHTTPServer
}

func NewGUIServer

func NewGUIServer(prv *BaseProvider) *GUIServer

type HTTPGetHandler

type HTTPGetHandler func(w http.ResponseWriter, r *http.Request)

type ProviderGetHandler

type ProviderGetHandler func(prvReq *ProviderRequest) ProviderResponse

type ProviderHook

type ProviderHook func(*BaseProvider, *ProviderRequest, *BaseRequestStatus) bool

A ProviderHook is a function that takes a ProviderRequest and a BaseRequestStatus and returns a boolean indicating whether the request should proceed. If desired, the ProviderHook may modify the BaseRequestStatus in place to set the status code and a message to hand back to the client.

type ProviderInterface

type ProviderInterface interface {
	SetupFromEnvironment()
	Get(prvReq *ProviderRequest) ProviderResponse
	Center(prvReq *ProviderRequest) ProviderResponse
	Edge(prvReq *ProviderRequest) ProviderResponse
}

type ProviderRequest

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

func (*ProviderRequest) InfoStr

func (prvReq *ProviderRequest) InfoStr() string

type ProviderResponse

type ProviderResponse struct {
	StatusCode int
	Data       map[string]interface{}
}

func HandleGRPC

func HandleGRPC(ctx context.Context, prv *BaseProvider, subrequest string, row, col int) (*ProviderResponse, error)

func ProviderResponseEmpty

func ProviderResponseEmpty() ProviderResponse

func ProviderResponseMethodNotAllowed

func ProviderResponseMethodNotAllowed(method string) ProviderResponse

func ProviderResponseNotImplemented

func ProviderResponseNotImplemented() ProviderResponse

func (*ProviderResponse) Add

func (pr *ProviderResponse) Add(key string, value interface{})

func (*ProviderResponse) AddError

func (pr *ProviderResponse) AddError(error string)

func (*ProviderResponse) GetErrors

func (pr *ProviderResponse) GetErrors() string

func (*ProviderResponse) GetString

func (pr *ProviderResponse) GetString(key string) string

type ProviderUpdater

type ProviderUpdater func(*BaseProvider)

A ProviderUpdater is a function that updates the provider's state based on external things. It does _not_ get to short-circuit the request; it only gets to update state.

type SmileyProvider

type SmileyProvider struct {
	BaseProvider
	// contains filtered or unexported fields
}

func NewSmileyProviderFromEnvironment

func NewSmileyProviderFromEnvironment() *SmileyProvider

func (*SmileyProvider) Get

func (sprv *SmileyProvider) Get(prvReq *ProviderRequest) ProviderResponse

Jump to

Keyboard shortcuts

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