Files
go-ha/entitylistener.go
Sam Lewis 7bcca889f9 good progress yay:
- impl http client
- create http client in App()
- generic builder for Service.*
- set Service on app to pass to callbacks later
- impl State
- set State on app to pass to callbacks later
- change panic to log.Fatalln
2022-10-11 01:22:23 -04:00

59 lines
1.1 KiB
Go

package gomeassistant
type entityListener struct {
entityId string
callback entityListenerCallback
fromState string
toState string
betweenStart timeOfDay
betweenEnd timeOfDay
}
type entityListenerCallback func(Service, Data)
type Data struct{}
func (b elBuilder3) OnlyBetween(start timeOfDay, end timeOfDay) elBuilder3 {
b.entityListener.betweenStart = start
b.entityListener.betweenEnd = end
return b
}
func (b elBuilder3) FromState(s string) elBuilder3 {
b.entityListener.fromState = s
return b
}
func (b elBuilder3) ToState(s string) elBuilder3 {
b.entityListener.toState = s
return b
}
/* Builders */
func EntityListenerBuilder() elBuilder1 {
return elBuilder1{entityListener{}}
}
type elBuilder1 struct {
entityListener
}
func (b elBuilder1) EntityId(eid string) elBuilder2 {
b.entityListener.entityId = eid
return elBuilder2(b)
}
type elBuilder2 struct {
entityListener
}
func (b elBuilder2) Call(callback entityListenerCallback) elBuilder3 {
b.entityListener.callback = callback
return elBuilder3(b)
}
type elBuilder3 struct {
entityListener
}