Help us shape the future of Go! Take the 2026 Go Developer Survey

smartappcore

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2018 License: Apache-2.0 Imports: 24 Imported by: 4

Documentation

Index

Constants

View Source
const (
	CorrelationHeader = "X-ST-CORRELATION"
	CorrelationKey    = "loggingId"
	MediaTypeJsonV1   = "application/vnd.smartthings+json;v=1"
	SmartThingsHost   = "api.smartthings.com"
)

Variables

View Source
var (
	UnsupportedLifecyleError          = errors.New("unsupported_app_lifecycle")
	IllegalArgumentPingChallengeError = errors.New("illegal_argument_ping_challenge")
)

Functions

func DebugInterceptor

func DebugInterceptor(log logger.Logger, original http.RoundTripper) http.RoundTripper

func ParsePublicKeyBase64

func ParsePublicKeyBase64(publicKeyBase64 string) *rsa.PublicKey

*

  • Builds an rsa.PublicKey object for a pem formatted base64 encoded public key string.

func RequestInterceptor

func RequestInterceptor(original http.RoundTripper) http.RoundTripper

Types

type Authenticator

type Authenticator struct {
	Verifier *httpsig.Verifier
}

func NewAuthenticator

func NewAuthenticator(publicKey *rsa.PublicKey) *Authenticator

type DefaultEventHandler

type DefaultEventHandler struct {
	Chain       []PredicateEventHandler
	OnSuccess   OnSuccess
	OnError     OnError
	FailOnError FailOnError
}

func (*DefaultEventHandler) AddEventHandler

func (h *DefaultEventHandler) AddEventHandler(handler PredicateEventHandler)

func (*DefaultEventHandler) BuildHandler

func (h *DefaultEventHandler) BuildHandler() Handler

func (*DefaultEventHandler) DoOnError

func (h *DefaultEventHandler) DoOnError(onError OnError)

func (*DefaultEventHandler) DoOnSuccess

func (h *DefaultEventHandler) DoOnSuccess(onSuccess OnSuccess)

func (*DefaultEventHandler) GetChainSize

func (h *DefaultEventHandler) GetChainSize() int

func (*DefaultEventHandler) Handle

func (*DefaultEventHandler) SetFailOnErrorPredicate

func (h *DefaultEventHandler) SetFailOnErrorPredicate(failOnError FailOnError)

func (*DefaultEventHandler) SetHandlerChain

func (h *DefaultEventHandler) SetHandlerChain(chain []PredicateEventHandler)

func (*DefaultEventHandler) Test

func (h *DefaultEventHandler) Test(params *SmartAppParams) bool

type DefaultPredicateHandler

type DefaultPredicateHandler struct {
	Tester  Test
	Handler Handle
}

func (*DefaultPredicateHandler) Handle

func (*DefaultPredicateHandler) Test

func (h *DefaultPredicateHandler) Test(params *SmartAppParams) bool

type DefaultSmartApp

type DefaultSmartApp struct {
	Chain []PredicateHandler
}

func (*DefaultSmartApp) Handle

type DefaultSmartAppDefinition

type DefaultSmartAppDefinition struct {
	InstallHandler       PredicateHandler
	UpdateHandler        PredicateHandler
	UninstallHandler     PredicateHandler
	EventHandler         PredicateHandler
	PingHandler          PredicateHandler
	ConfigurationHandler PredicateHandler
	OAuthCallbackHandler PredicateHandler
	AdditionalHandlers   []PredicateHandler
}

func (*DefaultSmartAppDefinition) AddHandler

func (h *DefaultSmartAppDefinition) AddHandler(handler PredicateHandler)

func (*DefaultSmartAppDefinition) BuildChain

func (h *DefaultSmartAppDefinition) BuildChain() []PredicateHandler

func (*DefaultSmartAppDefinition) SetConfigurationHandler

func (h *DefaultSmartAppDefinition) SetConfigurationHandler(handler Handler)

func (*DefaultSmartAppDefinition) SetEventHandler

func (h *DefaultSmartAppDefinition) SetEventHandler(handler Handler)

func (*DefaultSmartAppDefinition) SetInstallHandler

func (h *DefaultSmartAppDefinition) SetInstallHandler(handler Handler)

func (*DefaultSmartAppDefinition) SetOAuthCallbackHandler

func (h *DefaultSmartAppDefinition) SetOAuthCallbackHandler(handler Handler)

func (*DefaultSmartAppDefinition) SetPingHandler

func (h *DefaultSmartAppDefinition) SetPingHandler(handler Handler)

func (*DefaultSmartAppDefinition) SetUninstallHandler

func (h *DefaultSmartAppDefinition) SetUninstallHandler(handler Handler)

func (*DefaultSmartAppDefinition) SetUpdateHandler

func (h *DefaultSmartAppDefinition) SetUpdateHandler(handler Handler)

type DefaultSmartThingsApi

type DefaultSmartThingsApi struct {
	Client         *apiclient.SmartThings
	RequestTimeout time.Duration
	Logger         logger.Logger
}

func (*DefaultSmartThingsApi) CreateDeviceEvents

func (s *DefaultSmartThingsApi) CreateDeviceEvents(params *devices.CreateDeviceEventsParams) error

func (*DefaultSmartThingsApi) CreateSchedule

func (*DefaultSmartThingsApi) ExecuteDeviceCommands

func (s *DefaultSmartThingsApi) ExecuteDeviceCommands(params *devices.ExecuteDeviceCommandsParams) error

func (*DefaultSmartThingsApi) ExecuteScene

func (s *DefaultSmartThingsApi) ExecuteScene(params *scenes.ExecuteSceneParams) error

func (*DefaultSmartThingsApi) GetLocation

func (*DefaultSmartThingsApi) InstallDevice

func (s *DefaultSmartThingsApi) InstallDevice(params *devices.InstallDeviceParams) (*models.Device, error)

func (*DefaultSmartThingsApi) SaveSubscription

func (s *DefaultSmartThingsApi) SaveSubscription(params *subscriptions.SaveSubscriptionParams) error

type EventHandler

type EventHandler interface {
	SetHandlerChain(chain []PredicateEventHandler)
	AddEventHandler(handler PredicateEventHandler)
	DoOnSuccess(onSuccess OnSuccess)
	DoOnError(onError OnError)
	SetFailOnErrorPredicate(failOnError FailOnError)
	GetChainSize() int
	BuildHandler() Handler
}

func NewEventHandler

func NewEventHandler() EventHandler

type FailOnError

type FailOnError func(err error) bool

type Handle

type Handle func(params *SmartAppParams) (*smartapp.ExecutionResponse, error)

type Handler

type Handler func(params *SmartAppParams) (*smartapp.ExecutionResponse, error)

type KeyResolver

type KeyResolver struct {
	PublicKey *rsa.PublicKey
}

func (KeyResolver) GetKey

func (k KeyResolver) GetKey(id string) interface{}

type NoopLifecycleHandler

type NoopLifecycleHandler struct {
	Lifecycle smartapp.AppLifecycle
}

func (*NoopLifecycleHandler) Handle

func (*NoopLifecycleHandler) Test

func (h *NoopLifecycleHandler) Test(params *SmartAppParams) bool

type NotFoundHandler

type NotFoundHandler struct {
}

func (*NotFoundHandler) Handle

func (*NotFoundHandler) Test

func (h *NotFoundHandler) Test(params *SmartAppParams) bool

type OnError

type OnError func(params *SmartAppParams, err error) (*smartapp.ExecutionResponse, error)

type OnSuccess

type OnSuccess func(params *SmartAppParams) (*smartapp.ExecutionResponse, error)

type PingHandler

type PingHandler struct {
}

func (*PingHandler) Handle

func (*PingHandler) Test

func (h *PingHandler) Test(params *SmartAppParams) bool

type PredicateEventHandler

type PredicateEventHandler interface {
	Test(event *smartapp.Event) bool
	Handle(params *SmartAppParams, event *smartapp.Event) error
}

type PredicateHandler

type PredicateHandler interface {
	Test(params *SmartAppParams) bool
	Handle(params *SmartAppParams) (*smartapp.ExecutionResponse, error)
}

type SmartApp

type SmartApp interface {
	Handle(request *SmartAppParams) (*smartapp.ExecutionResponse, error)
}

func NewSmartApp

func NewSmartApp(definition SmartAppDefinition) SmartApp

type SmartAppDefinition

type SmartAppDefinition interface {
	SetInstallHandler(handler Handler)
	SetUpdateHandler(handler Handler)
	SetUninstallHandler(handler Handler)
	SetEventHandler(handler Handler)
	SetPingHandler(handler Handler)
	SetConfigurationHandler(handler Handler)
	SetOAuthCallbackHandler(handler Handler)
	AddHandler(handler PredicateHandler)
	BuildChain() []PredicateHandler
}

func NewSmartAppDefinition

func NewSmartAppDefinition() SmartAppDefinition

type SmartAppParams

type SmartAppParams struct {
	Request *smartapp.ExecutionRequest
	Context context.Context
}

func (*SmartAppParams) GetSetting

func (p *SmartAppParams) GetSetting(key string) string

type SmartThingsApi

type SmartThingsApi interface {
	CreateSchedule(params *schedules.CreateScheduleParams) (*models.Schedule, error)
	SaveSubscription(params *subscriptions.SaveSubscriptionParams) error
	InstallDevice(params *devices.InstallDeviceParams) (*models.Device, error)
	CreateDeviceEvents(params *devices.CreateDeviceEventsParams) error
	ExecuteDeviceCommands(params *devices.ExecuteDeviceCommandsParams) error
	GetLocation(params *locations.GetLocationParams) (*models.Location, error)
	ExecuteScene(params *scenes.ExecuteSceneParams) error
}

func NewSmartThingsApi

func NewSmartThingsApi(params *SmartThingsApiParams) SmartThingsApi

type SmartThingsApiParams

type SmartThingsApiParams struct {
	Host    string
	Schemes []string
	Debug   bool
	Logger  logger.Logger
}

type Test

type Test func(params *SmartAppParams) bool

Jump to

Keyboard shortcuts

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