View Source
const (
	// DefaultAlertExpiration is the default expiration for alerts.
	DefaultAlertExpiration = 10 * time.Second


This section is empty.


This section is empty.


type Alert

type Alert struct {
	// Type is the type of alert.
	Type AlertType `json:"type"`
	// Message is the message for the alert.
	Message string `json:"message"`
	// Expiration is the time the alert expires.
	Expiration *time.Time `json:"expiration,omitempty"`

Alert is an alert message.

func CreateAlert

func CreateAlert(alertType AlertType, message string, expireAt time.Duration) Alert

CreateAlert creates an alert with optional expiration. If the expireAt is < 1 Expiration will be nil.

type AlertType

type AlertType string

AlertType is the type of alert.

const (
	// AlertTypeError is for error alerts.
	AlertTypeError AlertType = "ERROR"

	// AlertTypeWarning is for warning alerts.
	AlertTypeWarning AlertType = "WARNING"

	// AlertTypeInfo is for info alerts.
	AlertTypeInfo AlertType = "INFO"

type Alerter

type Alerter interface {
	SendAlert(alert Alert)

type Dispatcher

type Dispatcher interface {
	ActionName() string
	Handle(ctx context.Context, alerter Alerter, payload Payload) error

Dispatcher handles actions.

type DispatcherFunc

type DispatcherFunc func(ctx context.Context, alerter Alerter, payload Payload) error

DispatcherFunc is a function that will be dispatched to handle a payload.

type Dispatchers

type Dispatchers []Dispatcher

Dispatchers is a slice of Dispatcher.

func (Dispatchers) ToActionPaths

func (d Dispatchers) ToActionPaths() map[string]DispatcherFunc

ToActionPaths converts Dispatchers to a map.

type Manager

type Manager struct {
	// contains filtered or unexported fields

Manager manages actions.

func NewManager

func NewManager(logger log.Logger) *Manager

NewManager creates an instance of Manager.

func (*Manager) Dispatch

func (m *Manager) Dispatch(ctx context.Context, alerter Alerter, actionPath string, payload Payload) error

Dispatch dispatches a payload to a path.

func (*Manager) Register

func (m *Manager) Register(actionPath string, actionFunc DispatcherFunc) error

Register registers a dispatcher function to an action path.

type NotFoundError

type NotFoundError struct {
	Path string

func (*NotFoundError) Error

func (e *NotFoundError) Error() string

type Payload

type Payload map[string]interface{}

Payload is an action payload.

func CreatePayload

func CreatePayload(actionName string, fields map[string]interface{}) Payload

CreatePayload creates a payload with an action name and fields.

func (Payload) Float64

func (p Payload) Float64(key string) (float64, error)

Float64 returns a float64 from the payload.

func (Payload) GroupVersionKind

func (p Payload) GroupVersionKind() (schema.GroupVersionKind, error)

GroupVersionKind extracts a GroupVersionKind from a payload.

func (Payload) OptionalString

func (p Payload) OptionalString(key string) (string, error)

OptionalString returns a string from the payload. If the string does not exist, it returns an empty string.

func (Payload) String

func (p Payload) String(key string) (string, error)

String returns a string from the payload.

func (Payload) StringSlice

func (p Payload) StringSlice(key string) ([]string, error)

StringSlice returns a string slice from the payload.

func (Payload) Uint16

func (p Payload) Uint16(key string) (uint16, error)

Uint16 returns a uint16 from the payload.