This commit is contained in:
Your Name 2019-02-09 17:00:24 +01:00
commit d336ec74ac
2 changed files with 40 additions and 2 deletions

36
bridge.go Normal file
View File

@ -0,0 +1,36 @@
package main
import (
"bytes"
"encoding/json"
"net/http"
)
// Bridge is the hue bridge interface
type Bridge struct {
Config *Config
}
func (b *Bridge) postToBridge(endpoint string, payload interface{}) (interface{}, error) {
data, errMarhshal := json.Marshal(payload)
if errMarhshal != nil {
return nil, errMarhshal
}
uri := b.getBridgeAPIURI() + endpoint
req, err := http.NewRequest(http.MethodPost, uri, bytes.NewBuffer(data))
if err != nil {
return nil, err
}
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
res, err := client.Do(req)
if err != nil {
return nil, err
}
return res, nil
}
func (b *Bridge) getBridgeAPIURI() string {
return b.Config.BridgeAddrScheme + "://" + b.Config.BridgeAddr + "/api/" + b.Config.Username
}

View File

@ -9,8 +9,10 @@ import (
// Config hue api config
type Config struct {
Username string `yaml:name`
Password string `yaml:userpassword`
Username string `yaml:name`
Password string `yaml:userpassword`
BridgeAddr string `yaml:bridgeAddress`
BridgeAddrScheme string `yaml:bridgeAddressScheme`
}
// createNewUser will create a new user. This should be called only of there's none in the yaml config.