mirror of
https://github.com/Xevion/go-ha.git
synced 2025-12-09 08:07:36 -06:00
- 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
59 lines
1.1 KiB
Go
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
|
|
}
|